MoreRSS

site icondmesg | 小土豆修改

全栈工程师,曾就职于Cisco。
请复制 RSS 到你的阅读器,或快速订阅到 :

Inoreader Feedly Follow Feedbin Local Reader

dmesg | 小土豆的 RSS 预览

我的欧洲生活 – 德国篇

2025-10-18 12:40:33

说起德国,真不得不佩服这个国家——
不仅是欧洲第一大经济体,连自家的超市都能开遍整个欧洲。

而真正来到柏林之后,我才发现,那些在电影《气球》中看到的分裂与逃亡、理想与恐惧,在现实中都变成了可以触摸的历史与秩序。那种震撼,是屏幕前永远体会不到的。


德国是一个拥有许多冷战遗迹的国家。

二战结束后,作为战败国的德国被迫接受《波茨坦协定》的内容。苏联、英国、法国和美国分别占领了德国的一部分,最终形成了两个国家:德意志民主共和国(东德)和德意志联邦共和国(西德)。

动画《间谍过家家》中虚构的两个国家——东国与西国,其实正是在影射冷战时期的东德与西德。
连首都的名字都只是比柏林多了一个字母 t,而剧中那些建筑风格、人物设定、甚至秘密组织的细节,都在处处暗示那个分裂而紧张的时代。

柏林作为纳粹德国的首都,在战争结束后,也被一分为二。很多读者如果不了解历史或地理,可能会以为柏林正好位于德国的中间,东西各占一半,就像切西瓜一样。

但实际上,整个柏林都位于东德境内,其中的西柏林完全被东德包围,成为飞地。

我的欧洲生活 - 德国篇

战争结束后不久,西方盟国与苏联之间的关系迅速恶化,冷战由此开始。苏联试图封锁柏林,但西方国家通过大规模空运建立了“空中走廊”,成功维持了西柏林的物资供应。最终,苏联被迫解除封锁。

然而,随着时间的推移以及东西方关系的进一步恶化,一道分隔东西柏林的高墙逐渐出现——这就是后来闻名世界的“柏林墙”。

80年代后期,随着全球民主化浪潮的兴起,东欧各国政局剧烈动荡。柏林墙也在这一历史洪流中应声倒塌,象征着东西方长期对立的终结。几个月后,东西德实现统一,重新成为一个完整的国家。

而在随后的几年里,苏联也走向解体,冷战正式落下帷幕。那段被铁幕、意识形态和对峙分割的时代,终于成为了历史。


因此我说,德国是一个拥有着很多冷战遗迹的国家。如果你对历史、尤其是二战、冷战历史比较感兴趣,那么德国是一定要去的地方。

去柏林的话,同样也是坐飞机比较划算,第一次没有坐过夜火车。抵达的机场是勃兰登堡机场。BER机场不是德国最大的机场,最大的是FRA法兰克福机场,FRA在整个欧洲也算是欧洲数一数二的大机场了

作为游客,建议根据停留时间购买 Berlin WelcomeCard,并依行程选择 AB 或 ABC 区域。这张卡几乎可以搭乘所有公共交通工具:
S-Bahn(市郊铁路)、U-Bahn(地铁)、Tram(有轨电车)和 Bus(公交车)都包含在内,出行非常方便,去部分景点甚至还有折扣

我的欧洲生活 - 德国篇

德国人十分松弛,就是这么一张纸,需要在机器上插进去打个卡带上时间戳,否则会被认为是逃票。同样,没安检。

我的欧洲生活 - 德国篇


第一个需要去的景点是,勃兰登堡门。

这座宏伟的大门见证了柏林从辉煌到分裂、再到统一的整个历史。冷战时期,它正好矗立在东西柏林的交界线上,成为铁幕最具象征意义的地标之一。

我的欧洲生活 - 德国篇

1987年,美国总统里根就在这里发表了那句震撼世界的呼喊——“Mr. Gorbachev, tear down this wall!”。

那声音回荡在柏林墙的两侧,也仿佛宣告着分裂时代即将结束,柏林墙终将被历史推倒。

另一场同样载入史册的演讲,则是肯尼迪在1963年发表的“我是柏林人(Ich bin ein Berliner)”

在冷战时期的西方世界,关于柏林最著名、最具象征意义的两场演讲,正是这两场。


第二个景点是,国会大厦。

德国国会大厦 Reichstag 可以免费参观,有中文的audio guide,需要先使用护照预约,安检比较严格。

我的欧洲生活 - 德国篇

前方那个圆顶的建筑就是国会大厦。

在参观过程中,可以了解到德国的政治体制、德国的建筑与历史变迁等内容。顶楼可以俯瞰柏林


去柏林,一定要去柏林墙。在市中心的波茨坦广场,可以看到柏林墙的一部分。

波茨坦广场在二战前,是柏林最繁华的商业中心。随着冷战拉开帷幕,这里被柏林墙分隔,变成了无人区。

我的欧洲生活 - 德国篇

波茨坦广场往另一边走,会有犹太人屠杀纪念碑

我的欧洲生活 - 德国篇

柏林墙虽然在城市很多地方都有遗址,但是最出名的还是东区画廊。在柏林墙倒塌之后,有许多艺术家来此作画,其中最知名的就是《兄弟之吻》

我的欧洲生活 - 德国篇

穿越墙壁的汽车,可能是在象征着东德人们追求自由、不屈不挠的翻墙精神

我的欧洲生活 - 德国篇

在东区画廊附近,我遇见了一群穿着反光衣的人,他们用胶水把自己的手粘在马路上

我的欧洲生活 - 德国篇

刚开始我还不懂,不知道他们在做什么,德语我也看不懂。

德国警察还挺细心的,给抗议者的手除胶,然后带走。有一个维持秩序的女警察甚至还用英文提醒我靠边走,别离马路中心太近

后来问了同事才知道他们是德国的气候抗议活动。


继续往另一边走,可以去参观查理检查站。查理检查站是冷战时期东西柏林之间最重要的边境通道之一,在很多电影游戏中都可以看到。

我的欧洲生活 - 德国篇

牌子上写着醒目的大字:“YOU ARE LEAVING THE AMERICAN SECTOR.”

哨岗另一侧堆着沙袋墙,常有人放下鲜花,或许是在纪念那些为自由倒下的人。

这里还能遇见穿军装的“美军”或“苏军”,其实是街头演员,合影后打赏几欧元就行。


德国人的英文虽不如荷兰人流利,但日常沟通起来问题不大。和朋友买Pixel手机的时候,可以感受到那个店员在努力憋英文出来😂虽然场景既认真又有些搞笑,但是 Guten Tag, danke!

柏林是一座让历史与现实并行的城市——喜欢冷战故事的人,一定要来。

 


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/europe-de.html

我的欧洲生活 – 荷兰篇

2025-10-17 14:26:56

注意:本文可能包含部分不适合未成年人的内容。如果你未满足所在国家的法定成年年龄,请酌情阅读。

走,我们去河南玩!

如果你认识一位荷兰朋友,你最好不要说他来自Holland(荷兰),而要说 Netherlands(尼德兰)。

荷兰是一个位于西欧的低地之国,北荷兰省和南荷兰省是整个荷兰的经济中心。这两个省份是荷兰12个省之一。如下图所示:

我的欧洲生活 - 荷兰篇

这就像你用英格兰泛指英国一样,是以偏概全的说法。所以还是用尼德兰更好,当然除非你在明确指明荷兰省,那么没问题。

提到荷兰,我的第一印象是17世纪荷兰海上贸易非常发达,荷兰在全球贸易和海上运输方面的主导地位,因此被称作“海上马车夫”。

由于海运非常发达,荷兰流传着“飞翔的荷兰人”的海上传说。这个传说讲述了一艘无法靠岸、永远在海上漂泊的幽灵船,象征着荷兰丰富的海洋历史和航海传统。

电影《加勒比海盗》里有“飞翔的荷兰人”的说法,应该就是从这里来的。并且很显然荷兰皇家航空很喜欢这句话

我的欧洲生活 - 荷兰篇

可千万别说荷兰什么破国家,500年前是小渔村,人家四五百年前正是要崛起的时候,也就是荷兰的黄金时代

在思科实习的时候,我的同事移民到了荷兰鹿特丹。正好在2023年的时候我有8天年假,于是就约了一下。

虽然之前有过出国的经历,但是坐飞机还是第一次。由于是申根区之内的旅行,和国内旅行没差别,带上护照和居留卡,拿着电子登机牌就可以。

 

下飞机的时候,走无申报通道就行。一下飞机,我就觉得这阿姆斯特丹这地方混杂着英式美式英语,火车上的乞丐都是先说英文再说荷兰语。我的英文还没有一个乞丐说得好😂

从斯基浦机场到阿姆斯特丹市中心要做NL的火车,黄蓝配色非常亮眼。荷兰的火车有闸机,不像瑞典那样直接上就行。机器上买纸质票贵1欧元。

我的欧洲生活 - 荷兰篇

手机App可以扫码,节约1欧元。Sprinter站站停很慢,IC Direct是直达车快很多

我的欧洲生活 - 荷兰篇

 

众所周知,荷兰常被认为是一个“黄赌毒全合法”的国家。

但实际上,这种说法存在不少误解。

黄色(性产业):

在阿姆斯特丹著名的红灯区 De Wallen(德瓦伦),性产业是公开且受政府监管的合法区域,已成为城市的一部分文化景观。

不过在其他城市,这类区域并不常见,大多规模较小或管理更为严格。

下图就是经过德瓦伦时拍的一张照片,走过的时候,一股尿骚味,感觉很差劲……

我的欧洲生活 - 荷兰篇

赌博:

荷兰的赌博业同样合法化且受政府监管。

大型赌场(如 Holland Casino)主要集中在阿姆斯特丹、鹿特丹、海牙等大城市,小城市则往往只有线上或少量实体赌场可供娱乐。

毒品:

所有硬性毒品(如可卡因、冰毒等)在荷兰依然严格禁止。

只有软性毒品(如大麻)在政府许可的 coffee shop 内可少量购买与使用。

这类 coffee shop 在阿姆斯特丹最为常见,而在其他城市数量有限,比如我在鹿特丹就没找到。

当然了,你要是敢把这类东西带出荷兰,那就是严重的非法行为。

走在阿姆斯特丹的街道上, 如果你闻到了一股呛鼻子的味道,那别想了,就是大麻。

同时,阿姆斯特丹市政府也在提醒, 不能从贩子手上买毒品,那是非法的。

我的欧洲生活 - 荷兰篇

来都来了, 在荷兰,想要吸蘑菇,其实一般是迷幻蘑菇/松露,满大街都能看到标志是个🍄的店铺(主要在阿姆斯特丹)

我的欧洲生活 - 荷兰篇

价格根据不同的品牌和店铺,从十几欧元到二十多都有。饿着肚子吃了,很难吃,并且一点效果都没有。手机的字没有变3D,我也没有变超人,很失望,很贵,很饿,很绝望。


在荷兰市中心闲逛的时候看到了一辆坦克

我的欧洲生活 - 荷兰篇

阅读旁边的文字说明了解到这是在俄罗斯入侵乌克兰期间被机会的俄军坦克。我的运气比较好,这辆坦克恰巧是最后几天展出。

牌子上写到,它象征着欧洲民主的脆弱性和韧性。……自乌克兰战争爆发以来,再次证明民主并非理所当然,而是一个易受威胁的脆弱结构。

我的欧洲生活 - 荷兰篇

如果你要去荷兰玩,一定要记得提前订票,著名的景点包括:安妮指甲、梵高博物馆、荷兰国立博物馆、尼莫科学博物馆等等。

第一次的时候我没去上,但是第二次的时候都去上啦。那些在初中美术书上看到的作品,比如梵高自画像,向日葵等等,都看到咯。

这里就是众多自画像之一

我的欧洲生活 - 荷兰篇

久负盛名的向日葵

我的欧洲生活 - 荷兰篇

国立博物馆之倒牛奶的女仆,也是非常出名的

我的欧洲生活 - 荷兰篇


除了阿姆斯特丹外,鹿特丹也是非常值得玩、且非常特殊的一个城市。从阿姆斯特丹去鹿特丹,坐NL的火车就行了

一般来说,欧洲的城市往往都是教堂,护城河,公园,美术馆,满大街都可以看到各种老旧风格的建筑。

但是鹿特丹这个城市不一样。我第一次听说鹿特丹,还是在游戏《战地5》里,这张地图被DICE宣传了很多遍

我的欧洲生活 - 荷兰篇

在二战期间,德国迅速占领了荷兰。为了迫使荷兰尽快投降并为后续攻入其他国家做准备,德国空军对鹿特丹进行了大规模轰炸。鹿特丹作为欧洲第一大港,对于德国具有重要的战略意义。此次轰炸几乎将这座城市夷为平地。仅仅用了五天时间,荷兰便被迫宣布投降。

战后,各国政府纷纷主导城市重建工作,大多选择在原有的基础上按照原来的样子重建。然而,鹿特丹则与众不同。由于这座城市几乎被夷为平地,市政府开始全面自我革新,兴建了各种奇形怪状的建筑。这种独特的重建方式使鹿特丹成为了现代建筑的标志性城市。

比如这个,是鹿特丹中央车站

我的欧洲生活 - 荷兰篇

下面这个黄色的叫做方块屋

我的欧洲生活 - 荷兰篇

威廉姆斯大厦(Willemswerf Building),成龙在电影《我是谁》里跳下来的那个大厦。方块屋在电影里也有。

我的欧洲生活 - 荷兰篇

电影里的场景

我的欧洲生活 - 荷兰篇

走在鹿特丹的大街上,到处都有这种奇奇怪怪的建筑,仿佛建筑师是在玩MineCraft一样

我的欧洲生活 - 荷兰篇

我的欧洲生活 - 荷兰篇

鹿特丹比较有名的地方是Markthal 一个大商场。外形很奇特,像马蹄一样。内部包含一个大型食品市场、商店和餐馆,外部是公寓。

我的欧洲生活 - 荷兰篇

其独特的设计和内部的彩绘天顶,其实非常漂亮,使其成为鹿特丹著名的地标和旅游景点之一。

我的欧洲生活 - 荷兰篇

我在这个商场里买到了煎饼果子,味道很不错,非常满足。

我的欧洲生活 - 荷兰篇

鹿特丹的整体风貌与传统的欧洲城市截然不同,充分展现了其作为国际都市的奇葩魅力。连CoCo奶茶店也在这里开设了分店😂,就是价格十分感人 我的欧洲生活 - 荷兰篇


荷兰另一个值得去的城市是海牙荷兰语Den Haag / 英文The Hague

从鹿特丹乘坐火车可以继续前往海牙。虽然阿姆斯特丹是荷兰的首都,但实际上海牙才是政治中心。荷兰政府、驻外使馆、国际法院和军事法庭等重要机构都设在海牙。

我的欧洲生活 - 荷兰篇

著名的《戴珍珠耳环的少女》原作也收藏在海牙的毛里茨皇家美术馆(Mauritshuis)。这幅画是约翰内斯·维米尔的杰作,可以说是这个美术馆的镇馆之宝了。 我的欧洲生活 - 荷兰篇

海牙海牙,自然有海(北海,北大西洋的一部分)

我的欧洲生活 - 荷兰篇

海牙也要有牙🦷🦷🦷🦷就在这里🦷🦷🦷🦷👈

非常不幸的是,晚上想返回位于阿姆斯特丹机场附近的酒店时,荷兰铁路系统出了问题。最终,我被迫在莱顿下车,不得不打了一辆Uber回到酒店,花费了50欧元。幸运的是,后来荷兰铁路公司报销了这笔费用。

我的欧洲生活 - 荷兰篇


第三次去荷兰的时候,去了尼莫科学博物馆,这个有一点像上海科技馆,比较适合小孩子玩。那些复杂的物理概念,哪怕是中文我都看不懂,在这里就只能当作重新读高中了。

博物馆旁边有一条河,河对面的建筑是Booking在荷兰的总部。要是能到这里上班就好了。

我的欧洲生活 - 荷兰篇

想起来了之前在VMware接触到的第一位同事(面试官),后来就跳槽去了Booking


综合体验下来,我觉得荷兰更好一些。天气舒服,美食也多,而且感觉他们的英文水平甚至比瑞典人还要好。

当然了,我听说在荷兰和比利时交界处有个神奇的小镇——巴勒-纳骚(Baarle-Nassau)。那儿有栋著名的房子,只要一脚跨过去,就从荷兰到了比利时。整座小镇被国界线切得七零八落,连咖啡馆和民居都一半属荷兰、一半属比利时,地上还画着白色的边界线,特别有趣。

我的欧洲生活 - 荷兰篇

可惜我既没车、又没欧盟驾照,还不太敢开……

所以没去成那地方,没能像视频里那些人一样,一脚在荷兰、一脚在比利时,轻松实现“跨国旅行”😆


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/europe-nl.html

我的欧洲生活 – 丹麦篇

2025-10-16 11:21:02

理论上讲,丹麦才是我来到的第一个国家。当时的航班是从上海浦东出发的SK998,落地丹麦哥本哈根卡斯楚普机场。

在瑞典呆了几个月,尽管哥本哈根就在边上,直到2023年3月底我才去玩。

想从马尔默去哥本哈根,最经济实惠的办法便是坐火车。从马尔默的Triangeln 车站坐车到København H(哥本哈根市中心),在Skånetrafiken app上买票就行。

马尔默和哥本哈根之间隔着海,两座城市之间通过Øresund Bridge连接起来。

我的欧洲生活 - 丹麦篇

从飞机上俯瞰, Øresund Bridge的结构极为独特:从瑞典的马尔默一侧出发,桥梁在海平面上延伸,上层是公路、下层是铁路。

跨过海面后,桥梁抵达一座名为 Peberholm(佩贝霍尔姆) 的人工岛。这座岛是为了连接大桥与海底隧道而专门修建的,同时也成为自然生态的实验场。

过了岛后,大桥直接一头扎向海底。

值得一提的是,Peberholm 人工岛并不对公众开放,只有少数科研人员获准登岛,用于观察自然生态的自我演化过程。由于人类干预极少,这座岛如今已成为鸟类、昆虫和植物的天然天堂。

坐火车很容易,算好时间到车站,一如既往没有安检也没有检票,找到öresundståg 上车就行。因为穷买不起一等座,所以找二等座非预留的位置坐下就行。错过的话也没关系,再等几分钟就有了。 我的欧洲生活 - 丹麦篇

到达哥本哈根市中心大概要30-40分钟,期间可能会有人来查票。作为守法好公民上一定要买票的,逃票罚款好几千。

哥本哈根有一条护城河,护城河可能是大部分欧洲城市的特点之一,所以可以租大船小船。我一个单身狗就没必要这么善待自己了

我的欧洲生活 - 丹麦篇

在丹麦购物有一点好处,那就是不用计算汇率,因为DKK和CNY几乎是一比一的;相反,在瑞典购物也有一点好处,所有的商品在我的眼中全部都是7折!

丹麦也几乎是无现金社会了,但是部分地方仍然可以使用现金。我把我从国内带过去的DKK花掉了,得到的克朗的硬币长这样

我的欧洲生活 - 丹麦篇

丹麦的整体收入和消费要比瑞典高一些。具体来说就是,大家的数字是一样,但是单位一个是DKK一个是SEK😂

下面这张图片是坐火车时拍到的彩色房子,很漂亮

我的欧洲生活 - 丹麦篇

哥本哈根,或者说整个丹麦吧,最著名的景点一定是小美人鱼了。可惜直到一年多之后,我才去看过。因为要办英国签证,需要到哥本哈根提交指纹和照片,于是就顺路去了

我的欧洲生活 - 丹麦篇

当然少不了买一张明信片然后寄回去!

我的欧洲生活 - 丹麦篇

“小美人鱼”雕像无疑是最具有国际知名度的丹麦地标。如果有幸的话,在2010年上海世博会期间,可能你也见过小美人鱼的原貌。丹麦政府把原版的小美人鱼(不是复制品)借给了上海世博会,展出结束后又回到了港口。

小美人鱼所在的那个港口,也特别美

我的欧洲生活 - 丹麦篇

蓝天大海,走在去小美人鱼的路上,还有着跑步的人跟你喊,Walk on the right!

说到丹麦,很多人可能没什么特别的印象,只觉得那是个欧洲北部的小国。
但其实,丹麦的经济实力相当强,历史地位也不容小觑。维京人听说过吧?

几百年前,在“卡尔玛联盟”时期,丹麦可是北欧的真正霸主。后来随着瑞典的崛起、挪威的分离,丹麦逐渐衰落,甚至还被英国人“偷家”——1807年,哥本哈根战役中,英军直接把丹麦的舰队烧了个干净。

网上有个很有名的段子:

1807年,丹麦海军在哥本哈根战败后,为了重建舰队,种下了9万棵橡树;

2007年,皇家林业局的继任部门——丹麦自然局,郑重通知国防部:

“为了重建海军而种下的那9万棵橡树,已经准备就绪了。”

这事儿听起来像玩笑,但其实差不多是真的 😂。

还有一个趣闻,说在瑞典的斯科讷省(Skåne)——也就是历史上丹麦失去的领土——有一群人每年都会在特定的一天拿着铁锹挖地,象征性地想“把斯科讷从瑞典挖开来”,重新“并回丹麦”。
(斯科讷的瑞典语确实带着一股浓浓的丹麦味。)

TIL There is a group in Sweden that every year gather to dig so that a part of Sweden called Skåne wont be attached to Sweden and can be sent to Denmark or Germany
byu/korkad intodayilearned

现在的丹麦,人均GDP大概有70000多美元。非常恐怖了

乐高听说过吧?把塑料块卖给了全世界的丹麦公司。马士基,那个船运集装箱的也是丹麦的公司。

我的欧洲生活 - 丹麦篇

糖尿病护理公司诺和诺德也是丹麦公司,这公司市值高到可怕,从市值的角可以说是富可敌国(丹麦),从年销售额的角度可以说是丹麦经济的中流砥柱。他们还出了几款减肥药,并且在中国获批了。当然了这是处方药……

说起来诺和诺德,我高中时期坐在我前面的女孩子,她的爸爸好像就是在这里工作。因为她送我的一个笔记本,上面是 Novo Nordisk的标志……

丹麦应该是我去过的最多的外国了,因为每次要去其他国家,我都要去哥本哈根凯斯楚普机场坐飞机。CPH机场离市中心很近,火车只要20分钟左右即可到达,而且靠近欧洲中部,是北欧五国最大的机场。

小提示,丹麦在丹麦语中的拼写是Danmark,在英文中的拼写是Denmark。分不清不要怪我哦。

直到如今,我家里还有一个在丹麦便利店买的饮料剩下的瓶子。拿回去还能换1 DKK。只是很可惜我再也去不了了:-(

 


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/europe-dk.html

我的欧洲生活 – 瑞典篇

2025-10-15 10:47:30

众所周知,2022年的春天上海因为新冠疫情而封城2个月,那期间我萌生起了出国的想法并付诸行动,朋友内推后,我拿到了瑞典一家小公司的offer。

6月1日封城结束,我便开始了办护照等手续。因为我还要带猫猫走,因此还一起办了猫的各种手续。

10月初收到了移民局的信,于是便订了当年感恩节,也就是11月24日的机票。

北欧航空只允许带 8kg的猫包上飞机,我做了最坏的只能带一只猫走的打算。非常庆幸的是并没有人称重,于是我成功的给两只猫都带走啦。

我的欧洲生活 - 瑞典篇

那是我第一次出国,也是第一次坐这种 3-4-3的宽体机,第一次到的国家是丹麦而不是瑞典,因为我要去的城市马尔默就在丹麦首都哥本哈根边上,去哥本哈根比去斯德哥尔摩更方便。

 

当时在哥本哈根机场还是很慌的,第一次出国谁不慌啊……

一路上猫崽子们还是挺争气的,没尿没拉也没叫,最终在当地时间早上6点多到了临时的住处。

我的欧洲生活 - 瑞典篇

当天晚上他们就适应了新的家,甚至还学会了跳高捉迷藏。猫猫们可能不知道自己飞到了地球的另一边。也许,在他们眼中有我的地方就是家。

我的欧洲生活 - 瑞典篇

在我走后没几天,中国就爆发了白纸运动,三年的清零政策就这样一瞬间解除了。那时候我还在嘲讽自己,再忍忍就好了,干嘛跑得这么快。

整个欧洲的纬度其实是比较高的,北欧的纬度就更高了,因此在冬天环境会比较恶劣。气温倒是没中国北方零下十几度那么冷,但是每天都是阴天还会下雨,日照时间大概只有六七个小时。

有的时候也会下雪,但是一般不会存住很久,不像中国北方那样。基本上就是像下图这样,对于没看过雪的南方孩子来说应该还挺让人激动的:

我的欧洲生活 - 瑞典篇

虽然我躲过了11月-12月中国的新冠感染潮,但是……躲得了初一躲不了十五啊。在1月中,大概是在看房途中,我不小心中招了

瑞典的租房和国内是完全不一样的。像我第一次去看房是找了这样的独栋别墅

我的欧洲生活 - 瑞典篇

真的很好看!房东出租一层,大概有个80平方米的使用面积吧。瑞典没有类似国内的公摊面积的说法。

瑞典的房屋租赁和国内不一样,基本上可以分为一手房和二手房。所谓的一手房,就是像政府机构、或者是政府机构认可的房地产公司租房,这种房子基本上是想住多久就住多久的,签的合同会写着 Until further notice;另外一种二手房,就是向二房东租房。

我的欧洲生活 - 瑞典篇

所有的一手房,搬进去的时候都是家徒四壁:只有厨房和卫生间是装修好的,其他地方,甚至连个灯都没有。搬走的时候也要把你的灯、家具都带走。

中招后, 头一点晚上感觉不太对劲,立刻去超市买了体温计,搭配我之前12月底准备的布洛芬。

然后去请了假。瑞典法律规定,病假第一天无薪,第二天开始每天都能够拿到80%的薪资。通常前14天是不需要任何证明的,雇主也基本不会拒绝病假申请。

我的老板还是很体贴的,知道我病了后还问我要不要帮忙买东西,毕竟他也知道我一个人才来一个多月,人生地不熟,也没有人照顾……

还是要说,生病的时候真的好难受。前三天里我就在家里躺着,发着高烧,连拿手机的力气都没有。那时候真的好无助……第四天的时候开始逐渐好转,但还是咳嗽。

痊愈之后就陷入了很深的抑郁之中,国内在过春节,我一个人还要上班,工作也不会做,找不到房子,为什么要带两只猫过来啊,没有他们我早就跑回国了吧。

事情出现转机是在2023年的1月底,运气爆棚的我竟然只排队40多天就租到了一手房。

更厉害的是竟然是新房。

我的欧洲生活 - 瑞典篇

左侧的那个树杈后面,四层阳台,就是我家啦。进电梯要按4,但是门牌号是1302而不是1402哈哈哈哈哈奇怪的瑞典人。

在中国,房屋的朝向一般是以坐北朝南为佳。瑞典不是这样的。

瑞典维度非常高,因此到了夏天日照时间会很长,更具体的说太阳会在落山的时候落得很慢,如果再靠北甚至能看到极昼。

因为这个原因,瑞典的房子以朝向西为佳。这样在夏天,到了晚上八九点阳光也可以洒满屋子。

晚霞则是更美了,下面这张照片拍摄于5月30日9点57分。

我的欧洲生活 - 瑞典篇

这个房子房间面积大概58平方米,足够我一个人和两只猫使用了。

我的欧洲生活 - 瑞典篇

家具要么捡二手,要么去宜家买。成年人的乐高确实名不虚传,我还把龙骨装反了,直到一年之后才发现😂

我的欧洲生活 - 瑞典篇

随着春天的到来,我心情也开始逐渐变好了,没有之前那么想急切回国的想法了,主要也是回不去,海关只让一人带一只猫😂。两只小崽子越来越喜欢在门前的走廊上打滚和跑来跑去

我的欧洲生活 - 瑞典篇

在过了4月1日之后,我有了上一年度的年假。瑞典法律规定每年有25天年假,我恰巧工作了4个月,于是我有8天年假。虽然不多,但是我决定要出去旅游见见世面……

瑞典的铁路运营公司叫SJ,他们的高铁外面是这样,挺丑的,而且慢

我的欧洲生活 - 瑞典篇

里面是这样,很干净整洁。而且有Wi-Fi

我的欧洲生活 - 瑞典篇

没有安检,没有检票,可能有查票的工作人员。乘客要做的事情就是,看准自己的车上去对号入座就行。

我打算跑去斯德哥尔摩玩一玩,早上坐高铁,然后夜里坐夜间火车,第二天一早就回来连酒店都不用预定。斯德哥尔摩中央车站还是很漂亮的

我的欧洲生活 - 瑞典篇

我去了瓦萨博物馆,还去了诺贝尔博物馆。这个世界上最高荣誉的奖项诺贝尔奖,便是根据瑞典发明家阿尔弗雷德·诺贝尔的遗愿所颁发的奖项。所以在瑞典也能看到很多诺贝尔街、诺贝尔广场之类的地名。

我的欧洲生活 - 瑞典篇

这应该是路过的一家喜来登酒店。

北欧五国分别为 丹麦🇩🇰、瑞典🇸🇪、挪威🇳🇴、芬兰🇫🇮、冰岛🇮🇸,从国旗中可以看到他们都是统一的北欧十字,丹麦瑞典和挪威在历史上有着更为紧密的联系。

还路过了一条小巷子,树上开着很漂亮的樱花,背后是精美的公寓楼。

我的欧洲生活 - 瑞典篇

这一趟首都之行,我觉得最大的收获是……认识了一个会说中文的瑞典人,走在路上的时候他说“你好”叫住了我。谁说瑞典人都是社恐的?毫不夸张,这家伙中文说得比我还还标准……

后来了解到,他是芬兰人,小时候就搬到了瑞典。后来对中国文化有一些兴趣,自学中文,还去中国学了几年的中文。也就是说,这家伙,会芬兰语,瑞典语、挪威语、丹麦语、英语、中文……是很厉害了。(瑞典语、丹麦语、挪威语有比较高的互通性)

夏天的时候瑞典超市会卖一些应季水果,比如樱桃🍒

我的欧洲生活 - 瑞典篇

在德国超市lidl里每年夏天都有售卖,价格确实很感人,37人民币一斤,确实让我感动的痛哭流涕。后来在另一家本土超市 ICA 发现了价格便宜还好吃的樱桃,甚至都不用自己分拣。
我的欧洲生活 - 瑞典篇

瑞典的治安算是比较好的了,你可以放心大胆的把你的背包背在身后,甚至可以把手机放在身后的背包里或是裤子的后兜里。虽然这么说,自行车是很容易被偷的:

我的欧洲生活 - 瑞典篇

我的同事们都丢过很多辆自行车,毕竟偷了你的手机,没法销赃,偷了自行车很容易就卖二手。

要说起瑞典最知名的品牌,那么一定是IKEA – 宜家了

很荣幸,我去的第一家宜家就是原厂的。在国内的时候我没去过宜家

我的欧洲生活 - 瑞典篇

这个只是一家商场里的小宜家,只卖一些日用品。

大的宜家要坐车去,还挺远,和国内的那种宜家基本差不多了。

我的欧洲生活 - 瑞典篇

那种在网上看到的精心装修布置的样板房自然也有

我的欧洲生活 - 瑞典篇

瑞典还有一些其他知名的品牌,比如沃尔沃,H&M,爱立信,Spotify,Electrolux(一个卖冰箱等白色家电的公司,国内可能不太常见)

和宜家一样,我也是出国之后才去了H&M,那当然无论身在何处都要支持我老婆的事业了!

我的欧洲生活 - 瑞典篇

直到来到了瑞典,我才知道,原来我之前最喜欢的游戏《战地4》其开发商 DICE 就是瑞典的公司;2021年最佳游戏《双人成行》也是瑞典公司。甚至连像素游戏《我的世界》也是瑞典的……

在瑞典的生活,虽然很……可以说无聊吧,但是胜在悠闲自在。虽然这么说,一个人还是太孤独了,最终于2024年底我决定回国。文化、饮食,和可能的爱情,是我回国的三大原因。

现在想想,这两年多的海外旅居我还是有些事情后悔没去做,比如说……

  1. 我应该继续缴纳国内的社保(灵活就业),为可能回国的事情准备一个退路
  2. 应该趁这机会随便读一个硕士,这样就算纯正的海归,像我这种工作后回来的其实什么都不算

转念一想,也许我不应该回来。没了工作,没了爱情,没了退路。如果我没回国,只要再坚持坚持,就可以拿到永居甚至是入籍了。

但是人生就是这样,没有回头路,塞翁失马焉知非福。但是,无论如何,我想说,这一趟,不亏。这两年半的旅居生活是我的目前人生中的闪光点。


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/europe-se.html

绿联 AX900 CM763 无线网卡 (AIC8800 芯片) 在 Ubuntu上的驱动

2025-09-20 09:43:29

由于最近要做一些libvips的性能优化,必须要在一台物理机器且带NVIDIA GPU的机器上运行。Windows上用libvips很痛苦,于是就给自己家的二手捡垃圾PC装上了 Ubuntu 24.04

安装好之后,自然是没有无线网卡驱动的,我的无线网卡是捡垃圾的UGREEN AX900 CM763,还好从官网搜到了驱动 https://www.lulian.cn/download/154.html

本来以为,编译驱动什么的就是个10分钟的小事情,make && make install && modeprobe xxxx

但是这次没想到,一晚上都没了……🫠

编译驱动

根据官方的pdf说明

bash install_setup.sh
cd drivers/aic8800
make
make install

modprobe cfg80211
modprobe aic_load_fw
modprobe aic8800_fdrv

理论上就应该能看到无线设备了!

但是……2025年,我猜你很可能遇到……

could not insert 'aic_load_fw': Key was rejected by service

说明你启用了安全启动,要么禁用安全启动(小心你的Windows可能启动不了),要么自己创建一份key 然后 enroll

给驱动增加签名

由于开启了安全启动,内核默认会拒绝加载没有签名的ko文件,所以我们要自己创建key,导入,然后去签名ko

创建MOK

sudo apt install mokutil
openssl req -new -x509 -newkey rsa:2048 -keyout MOK.priv -outform DER -out MOK.der -nodes -days 36500 -subj "/CN=WiFi/"
mokutil --import MOK.der

之后会让你输入个密码,然后reboot重启系统,会看到这样类似蓝色的界面

绿联 AX900 CM763 无线网卡 (AIC8800 芯片) 在 Ubuntu上的驱动

Enroll后,继续启动进入系统,输入 mokutil --list-enrolled 看是否能够看到创建的issuer信息,如果能够看到,那就可以了

编译模块并签名

总之无论如何,肯定已经编译出来了两个ko文件,并且key已经enroll了

那么就要签名,让内核能够加载这个模块,要注意两个内核模块都要签名哦,路径自己改改

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
~/Desktop/MOK.priv \
~/Desktop/MOK.der \
aic8800_fdrv/aic8800_fdrv.ko

sudo /usr/src/linux-headers-$(uname -r)/scripts/sign-file sha256 \
~/Desktop/MOK.priv \
~/Desktop/MOK.der \
aic_load_fw/aic_load_fw.ko

签名成功,可以用modinfo确认一下

modinfo aic8800_fdrv/aic8800_fdrv.ko | grep signer
modinfo aic_load_fw/aic_load_fw.ko | grep signer

有输出内容,能够看到签名信息,就说明正确了

此时就可以make install了,一定不要忘记了这步

加载内核模块

modprobe cfg80211
modprobe aic_load_fw
modprobe aic8800_fdrv

然后lsmod看看呢?

lsmod | grep aic
aic8800_fdrv 696320 0
cfg80211 1433600 1 aic8800_fdrv
aic_load_fw 90112 1 aic8800_fdrv

然而你ifconfig还是可能,看不到无线网卡,插拔也看不到😂

dmesg 说firmware failed to open

看看dmesg

dmesg | grep -i aic

你会惊喜的发现

[ 1.233597] usb 5-2: Product: AIC Wlan
[ 1.233599] usb 5-2: Manufacturer: aicsemi
[ 3.930973] aic_load_fw: loading out-of-tree module taints kernel.
[ 3.932153] aic_bluetooth_mod_init
[ 3.932158] AICWFDBG(LOGINFO) aicwf_prealloc_init enter
[ 3.937597] AICWFDBG(LOGINFO) pre alloc rxbuff list len: 1000
[ 3.937638] AICWFDBG(LOGINFO) aicwf_usb_probe vid:0xA69C pid:0x8D80 icl:0x0 isc:0x0 ipr:0x0
[ 3.937644] AICWFDBG(LOGINFO) aicloadfw_chipmatch USE AIC8800D80
[ 3.937648] Aic high speed USB device detected
[ 3.938438] aic_load_firmware :firmware path = /lib/firmware/aic8800D80/fmacfw_8800d80_u02.bin
[ 3.938734] aic_load_firmware: fmacfw_8800d80_u02.bin file failed to open
[ 3.938742] aicwf_bus_deinit
[ 4.439093] usb_err:<aicwf_usb_rx_submit_all_urb,234>: bus is not up=0
[ 4.439118] usb_err:<aicwf_usb_rx_submit_all_urb,234>: bus is not up=0

又惊喜又意外是不是,还需要一个firmware,还好他的压缩包里有,全给复制进去

file aic8800_linux_driver/fw/aic8800D80/fmacfw_8800d80_u02.bin
# 输出为 aic8800_linux_driver/fw/aic8800D80/fmacfw_8800d80_u02.bin: data

sudo mkdir -p /lib/firmware/aic8800D80
cp aic8800_linux_driver/fw/aic8800D80/* /lib/firmware/aic8800D80/

重新加载内核模块,这次应该可以了吧?

sudo modprobe -r aic8800_fdrv
sudo modprobe -r aic_load_fw
sudo modprobe aic_load_fw
sudo modprobe aic8800_fdrv

dmesg wrong size of firmware file

尽管上一步我们已经modeprobe了,但是dmesg中看到……

[ 591.951845] usbcore: registered new interface driver aic8800_fdrv
[ 0.458630] Spectre V2 : Enabling Speculation Barrier for firmware calls
[ 0.640535] ACPI: [Firmware Bug]: BIOS _OSI(Linux) query ignored
[ 0.667872] acpi PNP0A08:00: [Firmware Info]: ECAM [mem 0xf0000000-0xf7ffffff] for domain 0000 [bus 00-7f] only partially covers this bridge
[ 3.621969] systemd[1]: Mounting snap-firmware\x2dupdater-167.mount - Mount unit for firmware-updater, revision 167...
[ 3.636882] systemd[1]: Mounted snap-firmware\x2dupdater-167.mount - Mount unit for firmware-updater, revision 167.
[ 3.938438] aic_load_firmware :firmware path = /lib/firmware/aic8800D80/fmacfw_8800d80_u02.bin
[ 3.938734] aic_load_firmware: fmacfw_8800d80_u02.bin file failed to open
[ 3.938740] wrong size of firmware file
[ 4.334041] nouveau 0000:0b:00.0: pmu: firmware unavailable

啊这?虽然我不懂代码,但是看起来这些的没问题啊,<=0 嘛
绿联 AX900 CM763 无线网卡 (AIC8800 芯片) 在 Ubuntu上的驱动

更新下 initramfs 应该就好了

sudo update-initramfs -u

然后重启系统,然后继续……

sudo modprobe -r aic8800_fdrv
sudo modprobe -r aic_load_fw

sudo modprobe aic_load_fw
sudo modprobe aic8800_fdrv

继续重新加载内核模块

但是此时,好像Wi-Fi还没出啦啊?

更改设备模式

lsusb可以看到

Bus 005 Device 003: ID a69c:5724 aicsemi Aic MSC

然后如果你细心打开过文件管理器,或者 df 了一次,还会发现

/dev/sdb1 3808 3195 613 84% /media/benny/UGREENs

甚至是如果你仔细看了上面的dmesg high speed USB device detected

[ 3.937644] AICWFDBG(LOGINFO) aicloadfw_chipmatch USE AIC8800D80
[ 3.937648] Aic high speed USB device detected
[ 3.938438] aic_load_firmware :firmware path = /lib/firmware/aic8800D80/fmacfw_8800d80_u02.bin
[ 3.938734] aic_load_firmware: fmacfw_8800d80_u02.bin file failed to open

系统把这个识别成了U盘😂 记得在Windows下使用也是直接多了个U盘,里面有个setup.exe

只不过这个设备不是用的 usb_modeswitch,而是udev,并且其实在install_setup.sh中已经提示了

驱动源代码中搜索可以看到如下内容

KERNEL=="sd*", ATTRS{idVendor}=="a69c", ATTRS{idProduct}=="5721", SYMLINK+="aicudisk", RUN+="/usr/bin/eject /dev/%k"
KERNEL=="sd*", ATTRS{idVendor}=="a69c", ATTRS{idProduct}=="5723", SYMLINK+="tendaudisk", RUN+="/usr/bin/eject /dev/%k"
KERNEL=="sd*", ATTRS{idVendor}=="a69c", ATTRS{idProduct}=="5724", SYMLINK+="ugreenudisk", RUN+="/usr/bin/eject /dev/%k"

那么创建一个文件 /etc/udev/rules.d/99-aic-udisk.rules

加入如下内容(或者你想加了上面三行,也行)

KERNEL=="sd*", ATTRS{idVendor}=="a69c", ATTRS{idProduct}=="5724", SYMLINK+="ugreenudisk", RUN+="/usr/bin/eject /dev/%k"

然后运行如下两条命令

sudo udevadm control --reload-rules
sudo udevadm trigger

重新插拔网卡,并lsusb

root@vips:~# lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 0a12:0001 Cambridge Silicon Radio, Ltd Bluetooth Dongle (HCI mode)
Bus 001 Device 003: ID 05e3:0608 Genesys Logic, Inc. Hub
Bus 001 Device 004: ID 1c4f:0043 SiGma Micro USB Keyboard
Bus 001 Device 005: ID 10c4:0005 Silicon Labs USB OPTICAL MOUSE
Bus 001 Device 011: ID 368b:8d88 AICSemi AIC 8800D80

wlx6c1ff7557a1b: flags=4099<UP,BROADCAST,MULTICAST>  mtu 1500
        ether 6c:1f:f7:aa:aa:aa  txqueuelen 1000  (Ethernet)
        RX packets 0  bytes 0 (0.0 B)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 0  bytes 0 (0.0 B)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

哦吼,出现了 🙃真不容易,不愧是开源拖拉机😂 赶紧备份一下整个分区……🫠

但是你以为这就完了吗?没有……

固定内核版本

由于不是dkms,如果某一天一个apt upgrade,然后升级了内核,那么就会发现,咦,我Wi-Fi呢?所以我们要固定一下内核版本,避免出现这种问题

sudo apt-mark hold linux-image-$(uname -r) \
linux-headers-$(uname -r) \
linux-modules-$(uname -r) \
linux-modules-extra-$(uname -r)

🤣 怎么感觉好像工作量全部在配置环境上了

🤔 要是使用 Windows + VM + 直通GPU会不会好一点?总之😂 太痛苦了,没想到竟然被一个无线网卡硬控了4个小时


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/aic8800-ubuntu.html

给 Sanic 应用添加断点续传支持

2025-05-01 15:26:22

前段时间闲得无聊,用sanic写了个临时文件网盘,名字比较奇怪就叫“新疆大盘鸡”。长这样

给 Sanic 应用添加断点续传支持

支持打开网页上传文件,也支持命令行上传。

后来在吃狗粮时发现两个问题,一个是下载大文件,不知道文件有多大,因此浏览器一直下载无法渲然进度条。这个很好解决,直接加上content length就可以

headers = {"content-length": str(path.stat().st_size)}
return await file_stream(path, headers=headers)

第二个问题则是发现无法断点续传。如果因为网络问题闪断了,那就又要从头开始了,会很苦恼;同时也不方便stream

断点续传请求起来是像下面这样子的:

给 Sanic 应用添加断点续传支持

利用了HTTP标准的range header,然后指定起点、终点,需要注意这里可能有多种格式,比如省略,多个范围。

实现起来其实不难,就是解析header,然后读文件时根据范围定位到对应的部分,只返回这部分文件内容。问题是自己写起来比较痛苦😂

非常幸运的是,sanic自带了一个简单的函数可以让我们迅速的支持Range

from sanic.handlers import ContentRangeHandler
@app.get("/")
async def hello_world(request: Request):
    return await file_stream("README.md", _range=ContentRangeHandler(request, stats=os.stat("README.md")))

很简单是不是。

给 Sanic 应用添加断点续传支持

要注意的是如果 Range 请求头不存在,会抛出 HeaderNotFound 的异常,因此有必要try catch一下,比如

try:
    return await file_stream("README.md", _range=ContentRangeHandler(request, stats=os.stat("README.md")))
except HeaderNotFound:
    return await file_stream("README.md")
except Exception as e:
    return text(str(e))

非常不幸的是,这个 ContentRangeHandler 不支持多重范围,比如说bytes=10-100,300-400,但是对我们的断点续传来说这个问题不大~


文章版权归原作者所有丨本站默认采用CC-BY-NC-SA 4.0协议进行授权|
转载必须包含本声明,并以超链接形式注明原作者和本文原始地址:
https://dmesg.app/sanic-range.html