2025-06-29 17:15:00
这个月时间不算多, 读书也有限. 除了单独成文的世说新语(豆瓣), 我读完了陈彦的喜剧, 总体来说值得一读. 我们总是要先做人, 再做事. 这个小说里的很多人都是一直在做事, 但是忘了该怎么做人. 手机上找到几本老的网络小说, 读了读选段, 印象最深还是徐凤年在六嶷山知道李淳罡死讯的时候那段. 游戏来说, Gran Turismo 7的普通menu book做完了, 拿了一个金奖杯. 后面刷得有点太累了, 就换游戏刷. 先是玩NBA Playgrounds 2, 最开心的是在一个五抽里面出了乔丹, 邓肯和库里. 在现实中, 可是史上最佳兼史上最佳分卫, 史上最佳大前锋和历史前三的控卫. 不过这个老游戏玩法比较单一, 大概就是不停打比赛升级技能, 然后继续打比赛. 人物收集来说, 很满意地收集到了乔丹和皮蓬. 后面开始在手机上玩Milky Way Idle, 先开了一个普通角色, 后来觉得有交易行玩起来太不像是游戏而是工作, 换成了无交易行的铁牛模式, 现在总等级877. 这个游戏的数值设定很不错, 不像很多放置游戏, 实际上最后通过respawn来和一条指数曲线战斗, 这个游戏的难度升级让我看不到指数增长的压力. 装备系统设计也不错, 稀有掉落大都是有意义的.
这个月看了两个Netflix上的剧, 一个是以悉尼为背景的North Shore, 这个剧没什么意思, 剧情能够勉强自圆其说, 当破案/家庭伦理随便看看还行. 另外一个剧是鱿鱼游戏的最终季, 最后一个舞台/节目的设定真的很厉害, 结局也能够让人认识到人的尊严的重要性, 整个剧的主题一下就上了一个档次.
一转眼,我本科毕业已经20年了. 这是个整数, 所以五月初本科同学就联系我, 邀我回学校一聚. 我四月份刚回去过, 就婉拒了他. 但是有总觉得欠了些什么. 最近又阴差阳错地被拉进了一个南大墨尔本校友群, 恰逢上个月21号学校校庆, 所以就去了.
聚会的地方说是一个会所, 实际上更像是一个对外营业的家庭餐厅. 认识了一些师兄弟师姐妹, 也有不少到这边来转职写代码的同行. 墨尔本校友会的现任会长是一个97年入学学会计的师姐. 前一任会长是化学系毕业的老先生, 精神矍铄, 讲话也很有条理, 挺厉害. 这个老先生和我的学术生涯稍有重合: 当年他在八九十年代就拿打孔纸写程序写Fortran 77做计算, 而且还用过5.25寸的软盘. 现在他一半时间在墨尔本大学的职务上, 还有一半在自己的公司身上. 转行写代码的几个人里面, 之前有学对外汉语的, 有学大气科学的, 还有一个和我一样是学物理的. 我们还拉了一个小群, 后续约饭.
这个月, 家里那只橘猫又趁机溜了出去, 我第一时间在后院抓他的时候他有点受惊, 钻洞逃走了. 和23年9月那次不一样, 这次他在外面游荡了几天才回家. 为了召回这个逃犯, 我们颇费了一番心思. 首先是找朋友借来了cat trap和热成像仪. 然后汲取上次的经验, 在后院放置了猫粮, 保证他能够存活, 洗衣房的外门晚上给他敞开, 让他还认个家. 我每天大概拿热成像仪出去扫个三四次, 但是说起来热成像仪大概只是提供了情绪价值, 因为我第一次拿出去扫街的时候还没把机器完全打开就在邻居家前院看到这货了. 然而这货只是那一次惊鸿一瞥出现过, 后来就只是每天吃猫粮, 在洗衣房猫砂盆里上厕所, 但是就是不回家, 避着人出没.
这个故事的结局是这样的, 某一天晚上七点出头, 我在给娃辅导作业的时候听到外面有猫叫, 赶快打开门, 听动静, 确认了猫是在隔壁的后院. 赶紧回头找喂猫的容器, 里面装好了猫粮就赶回靠近他的灌木丛, 边摇边psssspssssss, 终于到了最后他钻过了栅栏出现在了我的眼前. 看到我之后他也很高兴, 摊在手上的猫粮不吃, 低下头要用头蹭我的手. 我摸了摸他的头, 挠了挠, 还是把猫粮给他吃, 他这次低头开始吃了, 我看他的注意力集中到了食物上, 就慢慢把挠头的手往下, 抓住了他的前爪, 顺势抱进了屋. 整个过程让我感觉他是主动要回家, 而不是被我抓回来的. 因为担心他身上不干净, 抱回家后先把他关到洗衣房, 然后准备毛巾马上给他洗了澡. 洗澡时发现他的后爪上有一些小伤口, 估计是在外面踩到尖利物品后被扎破的. 不过整体感觉还算干净.
继续总结经验, 相比于23年9月那次:
另外, 亚马逊上买了一个ugreen的tracker, 这样如果下次丢了, 虽然对抓捕没什么直接帮助, 但是还可以大概判断它是不是在附近, 是否在活动.
2025-06-02 13:58:00
世说新语不是一本正经史书, 别太认真.
安石不出, 如苍生何?
先别激动, 这儿说的不是你家的王安石. 此处安石是字, 此人的姓名是谢安, 来自王谢堂前燕的里的谢家, 东晋人.
世说新语里全是这些豪门高阀的传说和故事, 多到齁多到腻的那种. 其中王谢两家子弟的戏份更是足. 王家当官的那些早已掩埋在历史长河中, 但是王羲之的作品是超越时代的. 而王羲之的好友, 谢家的谢安, 既是是东山再起这个成语的主人公, 也会在一场改变中国命运的大战里出现. 至于东山, 是当时的会稽, 现在绍兴附近的某个地方, 也是当时所有人趋之若鹜的居停. 罢官了? 没事, 早就想回东山了. 窃以为当时朝廷里日常寒暄少不了对东山房地产市场的讨论, 如果你家在那儿没个小院子供三五同僚来探索哲理和一起磕五石散, 都会阻碍你的仕途进步.
说回书本身, 这本笔记体的故事集很多时候是立观点站队大于一切. 事实不支持观点? 没关系, 摆上去; 没有事实依据? 也没关系, 王谢们金口一开就是事实, 谁稀罕真正的事实啊? 而说实在的, 人民大众的受教育水平和自身欣赏水平决定了他们要的就是这种, 要不抖音之流在当代为何如此流行? 比如说, 在世说新语里, 我们先像在欧几里得几何里定义公设一样, 定义了泰山崩于前而色不变是一种美德, 是能够胜任重任的必要条件, 然后在这个基础上衍发出了一系列故事(雅量篇). 但是我总觉得这儿的雅量就是矫揉造作. 比如有人下雨天靠着柱子写东西, 一道天雷打中柱子, 衣服都烧焦了, 还在继续写。这得是把人自身的动物性如何压抑才能不惊惧啊! 又比如东床快婿兼书圣王羲之, 当时听说有太傅要嫁女, 上门来选女婿, 其他兄弟都会有些拘谨, 只有他躺在那儿, 还露着肚皮. 我觉得王羲之这儿是不想结婚, 于是上网找了如何破坏相亲活动的帖子, 照本宣科后弄巧成拙了.
说回开篇的谢安, 这种雅量的事情肯定少不了他, 原著不难, 谨录如下:
谢公与人围棋, 俄而谢玄淮上信至, 看书竟, 默然无言, 徐向局. 客问淮上利害, 答曰: “小儿辈大破贼.” 意色举止, 不异于常.
顺便的, 请别把这儿淮上利害当成土匪闹事或者地方叛乱, 这儿谢安收到的消息是淝水之战的结果. 往少了说, 这一战确定了东晋不被灭国的命运; 往多了说, 确立了南北朝并立的态势. 当然, 据晋书记载, 谢安在脱离了客人的视线之后还是挺激动的, 踉踉跄跄, 鞋都磕坏了. 我就觉得, 有必要吗? 表现得像个人不好吗?
山涛和王戎算是竹林七贤里的两个异类. 王戎这个官n代不提, 即使没有竹林七贤的名头, 也注定会踱往权力的巅峰. 但是山涛就更像是靠着自我奋斗了. 虽说也是县令之子, 但是出身是明明白白的寒门. 能够最后位列三公, 绝大部分靠的是超人一等的学识和远见. 看他的事迹, 总有看穿越者的感觉, 因为他的每一步都是能正确地趋利避害, 已经到了无法让人理解的程度了.
山涛在通俗视野里出现, 大都是因为嵇康的与山巨源绝交书, 这篇不少人小时候都学过的古文里, 嵇康洋洋洒洒地自抒胸臆. 大意是, 我就是受不了当官你还想推荐我, 那我就不是你的朋友了. 但是, 仔细看行文可以发现, 他第一没有说山涛本人品性的坏话, 第二没有说山涛是故意陷害他才推荐了他. 要知道作为曹家子弟, 在司马氏的手下为官, 绝对是如履薄冰. 换一个不熟悉山涛的人, 绝对有理由往这个方面想. 但是嵇康知道自己之前的金兰兄弟的胸襟, 绝对不会做这样的事情. 所以, 我的理解是, 这篇更多是一个公开信, 而不是一个私下的绝交书. 一方面拒绝了来自司马氏的不那么确定的善意, 另一方面也给山涛竹林七贤的历史而补了一手, 让当权者对山涛更加信赖. 至于这两位的君子之交我不相信受到了这封绝交书的影响, 嵇康临刑前还嘱托自己的后辈, 有问题可以找山涛. 历史上也记载着, 嵇康的儿子也是受山涛的推荐而入朝为官.
但是说起这儿的为官, 我总觉得山涛为官的历史有点不太对劲:
山司徒前后选, 殆周遍百官, 举无失才. 凡所题目, 皆如其言. 唯用陆亮, 是诏所用, 与公意异, 争之, 不从. 亮亦寻为贿败.
这段是说, 当时晋武帝的吏部由山涛负责, 推荐了很多很多人, 从来没有任何问题, 物尽其用人尽其才, 只有对于陆亮, 来自上意, 后面陆亮也因为受贿而被拿下. 我知道晋武帝前期更会励精图治一些, 后面承平日久会懈怠很多, 但是作为一个基本的制衡机制, 山涛在朝堂上隐隐一呼百应, 总归是一个问题. 皇上点名要用的陆亮后面因为受贿出问题我相信是确有其事, 但是在那个政治黑暗的年代, 卖官鬻爵算是日常, 山涛自己都有收受贿赂(虽然没使用). 所以我很难因为一个人因为受贿而被法办就信服. 另外一个角度来讲:
晋武帝每饷山涛恒少. 谢太傅以问子弟, 车骑答曰: “当由欲者不多,而使与者忘少.”
赏赐也不会多给, 这让我觉得晋武帝和山涛之间有点什么. 还有另外一个佐证是:
山公大儿著短帢, 车中倚. 武帝欲见之, 山公不敢辞, 问儿, 儿不肯行. 时论乃云胜山公.
武帝想要看看山涛的儿子, 结果被山涛儿子拒绝了. 但是但是, 山涛的儿子凭什么能认为拒绝皇帝是一个选项的?
整个世说新语里我最喜欢的一个故事是这样的:
桓宣武少家贫, 戏大输, 债主敦求甚切. 思自振之方, 莫知所出. 陈郡袁耽俊迈多能, 宣武欲求救于耽. 耽时居艰, 恐致疑, 试以告焉, 应声便许, 略无嫌吝. 遂变服, 怀布帽, 随温去与债主戏. 耽素有艺名, 债主就局, 曰: “汝故当不办作袁彦道邪?”遂共戏. 十万一掷, 直上百万数, 投马绝叫, 傍若无人, 探布帽掷对人曰: “汝竟识袁彦道不?”
简单翻译就是, 桓温小时候赌博欠了债, 被催的紧. 于是想起了袁耽的主意, 那个时候, 袁耽正在居丧, 但是听到请求就毫不犹豫地换下丧服, 戴上帽子, 和桓温一起赴局. 袁耽在这个圈子里很有名气, 债主来的时候还问, 你不会是袁耽吧? 赌完大胜后, 赌神袁耽把帽子往对面一扔: “你认识袁耽不?”
这个小小说的起承转合都很顺畅, 戏剧冲突很足, 最后甩掉帽子的那一刻是整个故事的高潮, 而且故事就戛然而止, 很有力.
2025-05-24 07:38:00
读完了几本书, 还有一本长的在读. 首先是月初时读完了郭强生的寻琴者, 没让我喜欢, 视角的转换让我有点接受不了. 我的意思是我能感受到他想表达什么, 但是我不太欣赏这种方式. 接下来是池井户润的陆王, 这本小说很日本, 和半泽直树的手法, 说不好听一点, 雷同. 不过还不算太反感, 毕竟写作时的细节挺多, 背景也都铺到位了. 最后一本是川端康成的美丽与哀愁, 描写很厉害很妖艳, 但是剧情和主人公实在让人很难接受(当然如果老先生写主人公的目的就是招恨的话, 他达到目的了).
经朋友推荐, 看完了Netflix上的Adolescence, 这是一个四集短剧, 说的是一个案件, 但是每一集的主视角都不同, 让我猜测原著小说里面是不是和教父里一样, 像列传一样通过不同人的故事拼出整个故事轮廓来. 剧本身和剧情本身都乏善可陈, 有点炫技地无实际意义地使用长镜头. 不过这个剧里的学校是真乱, 完全就是Paul Graham的黑客与画家里提到的, 一个大型的托儿所而已, 没人对任何知识的传授/接收感兴趣. 另外, 爱死机4也更新了, 看完了, 没有一集我是想重看的. 到时候第五季出来我估计还是会看, 但是不再会有期待了.
玩游戏来说, 这个月主要花时间在重玩黑神话上. 不是二周目三周目, 而单纯是从零开始, 大部分的boss都打了, 包括二郎神. 感受是自己多少还记得怎么玩, 对于难度不高的第一关火照黑云, 我每个boss都是最多两次就过了. 我很欣喜地继续推, 直到我遇到了一生之敌虎先锋才第一次三连败. 后面我发现虽然自己已经有第一次游玩的经验, 但是游戏中人物的属性如果没上去, 那么还是挺容易死的, 于是在碎玉池刷了一下, 后面就都轻松多了. 整个这次游玩过程中, 死得最多的是毒敌大王. 另外, 我在手机上捡起了饥荒, 先用Wilson后用wx-78, 过了几许寒冬, 但是后面开始有点索然无味, 就没继续了. 另外, 继续在Gran Turismo里开车, 现在又有一个买车的邀约, 一个月要攒200万, 头疼.
最近对买鞋的事情有点在意, 原因是脚上的两双鞋, 一双AJ一双New Balance都有点旧了. 回国前买了一双Under Armor的复刻Curry, 替下了New Balance那双, 但是实话说不是那么满意. 所以四月份回国时仍是很审慎地继续搜寻. 首选的仍是AJ, 但是最近市面上的AJ的鞋底防滑都让我很不满意, 感觉都是为了内场打球而设计, 不是为了日常活动. Nike的其他几双鞋外观上可以接收, 不过可惜当时没好好试穿, 比如VaporMax的鞋底设计很出彩, 还有一双React InfinityRN的某一个配色很喜欢. 但是前一双在国内没试穿, 价格一千三人民币也觉得有点肉疼, 后一双在线下店里没试穿, 不敢不清楚大小就盲目上马. 在Nike里面试穿了其他一些跑鞋, 包括天足, 都没有下手, 因为觉得性价比不是那么好. 最后, 在一个李宁专卖店里试穿了超轻22, 觉得上脚的回弹的确很不错, 而且价格也挺便宜, 于是就下手了.
回到墨尔本之后仍是对那两双没买的Nike念兹在兹, 于是找到footlocker的线下店, 试穿了以后却大失所望. VaporMax可能对于体重更大的人会有比较明显的回弹, 但是不到150体重的我, 踩上去感觉太硬.
本科时记得在南京参加过一次区人大代表投票, 年级辅导员把我们带到某一个教室, 简单宣讲之后让我们投票, 有三个选项, 其中一个是大学的党委书记, 所以我也就是快速填上相关信息, 交差了事. 这个月初却是在澳大利亚履行公民义务(而且不履行要罚款), 投票选择国家的命运.
选前, 我所在的Menzie选区似乎都是被工党放弃了, 没在这儿投放多少宣传物料, 因为这儿一直是自由党的票仓. 我自己对Dutton的言行很不满意, 所以一门心思就是要反向操作. 投票是早上八点开始, 我早上七点四十洗漱完毕, 没吃早饭就出门了. 步行两三分钟就到了家附近的一个教堂里的投票点. 我到的时候投票还没开始, 前面只有一位年长的女士在等待. 我排着队, 低头读书. 八点再抬起头的时候, 发现后面已经排了大概二十个人. 八点整, 工作人员打开门, 把我们放进去. 拿到选票后就按着计划, 将工党候选人的名字排第一, 自由党候选人的名字排最后, 中间就是看着谁顺眼就选哪个. 一番操作后, 将大得离谱的选票折叠后扔进了票箱.
选举结果当天就出来了, 所有的结果都是公开透明的, 具体到每个投票点有多少人是怎么投票的, 都可以在选举委员会官网上查到.
2025-04-29 15:22:00
这个月整个比较混乱, 没太多时间读书, 旅途中读完了夜谭十记, 没觉得特别出色的地方, 开头实在是十日谈的味道太重. 后面的故事也没让我耳目一新, 很有三言二拍的水准. 对于让子弹飞本身的那个故事盗官记, 我也没觉得好到哪儿去, 姜文改编完之后的本子倒是冲突更多一些, 交待得更清楚一些, 结局也更合理一些.
玩的游戏大多数是在手机上, 首先是玩了Supercell的新作mo.co, 完全没找到任何游戏意义, 就是和一群人一起没头没脑地rush, 拿到经验/货币也做不了什么事情. 整个游戏部分让我想起了玩暗黑4时的不适, 于是捡起尘封已久的Nitendo Switch, 开始重新玩D3. 猎魔人玩到了130级大秘境后懒得继续了, 毕竟之前通关过150. 另一个游戏是用Save & Load大法在模拟器上通关了小时候玩过的一个[雪人兄弟]的游戏.
在武汉的一个杜比影院里看了Minecraft电影, 挺无聊的一个电影, 剧情人物塑造等等通通不在线, 看着影院效果可以勉强给个及格分.
这个月大部分时间是在中国旅游, 四五年没回中国了, 感觉还是挺不一样的. 很多地方变了, 但是感觉卷的程度和氛围还是没怎么变.
首先说吃喝吧, 这也是吸引我回武汉的重要原因了. 心心念念的豆皮吃了, 湖北的排骨藕汤和糍粑鱼吃了, 国内的可口青菜吃了不少. 零食来说吃了老四川的牛肉干, 有汪玉霞的绿豆糕, 麦当劳的麦辣鸡翅, 西北的烤羊排, 甚至看到了龙须酥(虽然不是熟识的品牌所以没买), 不过季节不对所以没吃到新鲜莲蓬. 后来去上海南京旅游, 吃了腌笃鲜, 也吃了徐州的羊肉汤. 吃东西而言, 如果完全不顾及食品卫生, 国内的好吃的东西实在不少, 性价比也不错.
玩乐来说, 我们在武汉去了木兰湖, 不过不值一提. 后面上海去了迪斯尼, 中华艺术宫和上海自然历史博物馆. 南京去了玄武湖附近的明城墙, 红山动物园和南大. 迪斯尼下面单独说, 中华艺术宫完全是共产主义的那种建筑风格和审美, 恕我无法接受. 上海自然历史博物馆倒是出乎意料地好, 我们和娃都看到了一些不错的东西. 里面的卖萌也挺有节制, 不过分夸耀. 不像我们在南京去的红山动物园, 完全是和小红书的宣传绑定, 都不知道若干年后没有小红书了, 这个动物园该怎么转型吸引游客. 玄武湖的城墙让我家娃以为来到了长城, 所以也算是不虚此行. 回南大看了下, 逢老同学推荐, 刷校友卡进门, 看了看北大楼, 主教学楼, 科技馆. 然后就穿过南园去了珠江路. 南园北园的主干道上满眼的红色, 三舍四舍之间的篮球场也早已作古.
接下来记一些碎碎念吧:
上海迪斯尼值得拿出来专门做一节来说, 毕竟算是此次中国之行的高光时刻.
首先在准备阶段, 除了找去过上海和香港迪斯尼的老同学答疑外, 还早早下载了它们家的app, 在各个时间段截屏了队列长度. 另外也让娃自己选了自己想要去的项目. 在经过考虑后, 我给自己买了一张入园票, 给娃和她娘买了一张优先票, 尽量cover了娃想玩的内容. 运气比较好的是, 我们在入园时过山车正在维护, 而当我们玩完了过山车附近的一个项目后, 过山车开放了, 我们赶紧赶过去, 没排什么队就都坐了一轮创战记的过山车. 后面也是优先玩娃想玩的项目和优先票覆盖过的项目. 印象比较深的是下午的一个演出, 我们在那儿站了约四十分钟, 百无聊赖. 晚上在园内卖汉堡的一个地方坐下来吃了顿饭, 虽然人民币看着比较贵, 但是除以澳币汇率后我们觉得还是可以接受. 晚饭休息好之后去迪斯尼城堡看了美轮美奂的演出, 造梦满分. 略有一点点后悔没去迪斯尼城堡里面的餐厅吃晚饭(每客740元), 毕竟享用了晚餐后能够经特殊通道来更近距离地感受晚上的灯光秀.
另外一点点感悟是, 造梦在于细节, 沉浸感也来自于细节. 相比其他主题公园里往往是木架子糊一层布, 迪斯尼的细节是很到位的, 各个能让人看到的建筑也好布景也好, 都是当艺术品在做. 所以不会有穿帮后的尴尬和让人出戏. 我们日常写代码或者写系统的时候也是应该抱有这样的心态, 仔细研讨用户可能使用产品的方式, 不管是成功路径还是失败路径, 输入输出或是屏幕提示, 都不能有穿帮和让人出戏的感觉.
2025-03-29 18:38:00
This article documents my experience installing Chimera Linux on a decade-old MacBook Air.
Why Chimera Linux? While I’ve used many Linux distributions over the years, most carry significant historical baggage. I wanted to see what a more modern distribution could achieve. Chimera Linux’s technical approach is quite appealing—it doesn’t use systemd and incorporates userland components from FreeBSD.
The initial setup went surprisingly smoothly. I downloaded the image(x86-64, plasma), flashed it to a USB drive, and booted the MacBook Air from it—all in one go, which felt almost too good to be true. Upon closer inspection, however, I discovered that the hard drive hadn’t loaded properly. Additionally, while Bluetooth worked, the wireless network card wasn’t recognized. Not a perfect start, but still acceptable—certainly smoother than my previous adventures with FreeBSD.
I began by addressing the hard drive problem. After researching the error, I found that it was related to a kernel parameter. The solution was to add intel_iommu=off
to the kernel boot parameters. Nothing too complex—just a matter of rebooting and remembering to modify the GRUB settings before each boot, otherwise the hard drive wouldn’t be recognized. The proper way to make this change permanent would be editing /etc/default/grub
, but this approach doesn’t work on a LiveCD.
Next came the more challenging wireless network card issue. The symptom was a lack of device files in /dev/net
. Using lspci
, I identified the card as a BCM4360. The default b43
and bcma
modules loaded in the LiveCD couldn’t drive this card. After finding some documentation, specifically this one, I realized I needed to compile a kernel module. I initially wanted to compile it in the LiveCD environment to minimize unknowns, but since kernel version in the apk repository is newer than the LiveCD version, I decided to install the system first and then tackle the driver issue.
Following the official documentation, I created the necessary partitions (ZFS+EFI+boot), mounted them, and executed chimera-bootstrap -l /media/root
to copy the LiveCD contents to the new partition. This step produced an error at the end—something about being unable to create hard links across devices. I suspected the script/command hadn’t handled this edge case properly, so I ignored it. When I ran apk upgrade --available
, the process was painfully slow because the network connection was going through my phone’s hotspot via Bluetooth, resulting in limited bandwidth. After upgrading several packages, I simply hit Ctrl-C to interrupt the process. I then installed GRUB and rebooted without issues, but couldn’t get into X, and the Bluetooth service wasn’t running either. This presented a challenge since I had never dealt with fixing Bluetooth from the command line without network access, and even if I got Bluetooth working, I’d still need to connect to my phone to access the internet. I took the easy way out: rebooted, booted from the LiveCD again, mounted the ZFS partition, and fixed the issue. If I recall correctly, either sddm
or sddm-dinit
wasn’t installed; once installed, everything worked normally.
Of course, I still needed to compile the network card driver. I referenced this SlackBuild and modified this script slightly to get it to compile properly(gist here).
In reality, it wasn’t that straightforward. I first needed to install clang
and gmake
, then install/update linux-stable{,-dev}
. The most frustrating part was discovering I also needed to install the wireless-regdb
package. The original script was designed to use gcc
for compilation, while Chimera Linux uses clang
. Rather than hunting for environment variables, I simply created a symlink from clang
to gcc
, which worked fine for the compilation.
After successful compilation, I had the wl.ko
kernel module file and could load it with modprobe
. Whether using modprobe -r
or adding to the blacklist, I could drive the network card with my newly compiled wl.ko
(visible in the PCI information), but /dev/net
still showed only the tun
device from my phone’s shared hotspot. As a last resort, I looked up the dmesg
error (about loading regulatory.db
) and discovered it was indeed due to a missing database. After installing the corresponding package with apk, everything worked properly.
My final thoughts:
wireless-regdb
/sddm-dinit
. On the other hand, many things require manual configuration (for instance, Chinese input methods need to be compiled from source, as they’re not available in the software repository or cports).I’ll continue to follow this distribution’s development. It shows potential, and the developer updates are quite frequent.
2025-03-29 14:16:00
这篇文章记录一下自己是如何在一台十年前的MacBook Air上折腾Chimera Linux的.
先说一下为什么, 主要是我自己用过的发行版虽然很多, 但是都有了很多很多的历史包袱. 我想看看现代一点的发行版能够做到什么程度. 从介绍来看, Chimera Linux的技术路线比较讨喜. 比如没有使用systemd, 比如使用了FreeBSD里面的userland.
具体的折腾算是一波三折. 首先比较顺利地下载镜像刷到U盘然后在这台MacBook Air上U盘启动进系统一气呵成, 让人感觉有点不现实. 不过再仔细一看, 发现硬盘没成功加载, 蓝牙虽然能用但是无线网卡却没识别. 不算太圆满的开局, 不过还能接受, 至少比我之前折腾FreeBSD要顺利得多了.
然后开始解决硬盘的问题, 拿着报错查了下, 发现是一个内核参数的问题, 需要在内核启动时加上intel_iommu=off
, 不算什么特别的, 需要重启电脑而已, 而且每次进系统之前都要记得去grub里面改, 否则硬盘就不能识别. 正确的修改方式是编辑/etc/default/grub
, 不过对于LiveCD, 这种做法是无效的.
然后就是更纠结的无线网卡的问题. 症状是/dev/net
下面没设备文件. lspci
看了下, 是BCM4360, LiveCD中默认加载的b43
和bcma
模块都没法带动这个卡. 查到一些文档, 比如这个, 于是要编译内核模块了. 本想在Live CD环境中编译, 这样unknown会少很多, 不过repository里面的内核版本和Live CD里的内核版本有区别, 于是我就打算先安装系统, 然后再去解决驱动的问题.
我按照官方文档分好了区(ZFS+EFI+boot), 挂载, 然后执行chimera-bootstrap -l /media/root
来将LiveCD中的内容复制到新分区中去. 这一步最后会有报错, 记得好像是说无法跨设备来创建硬链接. 我猜是这个脚本/命令没有处理好这种细节, 于是就忽略了. 后面开始执行apk upgrade --available
时速度很慢, 因为网络走的是手机热点通过蓝牙来传递数据, 所以带宽很小. 我升级了一群包后直接Ctrl-C了, 后面正常安装grub后重启没问题, 但是进不了X, 这个时候蓝牙服务也没打开. 这个比较麻烦, 因为之前从来没有处理过命令行下没网络修蓝牙的情况, 而且即使蓝牙修好了还需要通过蓝牙连接到手机才能上网. 于是重启, 再次祭出LiveCD后挂载zfs进去修了. 记得不错的话, 要么是sddm
没安装, 要么是sddm-dinit
没安装, 安装后就都能正常工作了.
当然当然还要继续编译网卡驱动呢. 参考了这个SlackBuild, 把这个脚本稍稍改了下(gist), 就能正常编译了.
当然现实中才没这么简单呢, 先要装clang
和gmake
, 然后要去装/更新linux-stable{,dev}
, 最坑的是还要安装wireless-regdb
这个包. 原始脚本中应该是使用gcc来编译的, 而Chimera Linux是clang. 我懒得去找环境变量, 直接将clang软链接成了gcc, 编译也没啥问题. 编译成功后可以得到wl.ko
这个内核模块文件, 用modprobe
就能正常加载, 不管是modprobe -r
还是加黑名单, 都能让这个网卡用我们刚编译的wl.ko
来启动(PCI信息里也能看到), 但是我的/dev/net
里仍是只有一个手机共享热点的tun
设备. 最后是死马当活马医似的将dmesg
的报错(加载regulatory.db
出错)查了下, 发现真是缺少数据库的缘故. apk安装对应的这个软件包后就好了.
最后加上一点小杂感:
我自己会继续跟进这个发行版, 目前来看还是有一定潜力的, 作者的更新也很勤快.