国产乐高阶段性简评:二战德系陆战兵器篇

作为一名曾经菜鸟比例模型玩家,自打2011年下半年以后就基本停止了,威龙的1/35野蜂自行火炮是我的最近一件手涂作品,最近收拾房间再拿出来的时候,这些十几年前的投入过不少时间和热情去制作的“玩具”不但落灰,而且可动性都变得极差了(由于我多使用油性漆刷做底漆,时间长了导致零件容易粘连)。

目前最后一件静态比例模型作品:威龙1/35野蜂自行榴弹炮

(过往做过的静态比例模型可以在这里回顾)

然而十多年过去了,我忽然又发现个新领域——乐高 _(:з」∠)_

自去年双十一以来,颇沉迷了一段时间乐高(此处泛指乐高型拼插积木,非专指丹麦的LEGO品牌),其中主要是国产品牌全冠积木。乐高是我以前从未接触过的一个领域,所以印象还停留在儿童玩具层次,不知道经过几十年的发展以后已经将仿真度提高到了一个相当高的高度。经过几个月的体验之后,我认为相对于比例模型,乐高有许多独特的优势:

  1. 首先最大的优势就是维护成本大为降低——比例模型都是开模很精细的,即使是大比例的模型,其细节部位的小零件一般也是很脆的,一旦弄断或者掉件了,通常很难补件。而乐高的主体是标准化砖堆砌的,除了少数用来修型的特制件,多数砖块都可以找到通用替代品,而且现在多数厂商都提供在线的补件系统,如果发现有少量的缺件或坏件,通常可以享受首次补件包邮。并且,乐高的标准砖是非常结实的,这就极大提高了成品的保存寿命,因此乐高成品非常耐磕碰,可以时常拿出来把玩,但模型通常则是需要精心保养的(特别是玩蚀刻片的朋友必定深有体会),像我这种入门级佛系玩家,十几年前做过的这批模型现在的状态已经是很不堪了 >_<
  2. 然后是时间成本。做过比例模型的同学应该都知道,这个兴趣是相当烧时间的,工序多,周期也比较长,一件作品花一个月甚至几个月都是很正常的。但是一件乐高,都能在几个小时到几天之内拼完,哪怕砖数是在几千块的大货,一般也能在一周之内完成。这是我最为prefer的点了,毕竟如今已经没有过去那么多时间投到业余上。
  3. 还有就是货币成本。比例模型是个相当烧钱的爱好(前提是你深入钻进去的话),如果乐高指的是LEGO这个品牌,那么烧钱程度一点也不亚于比例模型,其他还有一些知名的外国品牌,如主攻军事题材的波兰品牌Cobi,以及LEGO的下游厂商美国品牌Brickmanina,价格也是直逼LEGO。好在我国玩具行业有巨大的产能和不俗的设计能力,我们能够在国货中找到性价比很高的相应替代品。

我经常参考的两个评测自媒体是“小雨姐”和“坏雪”,包括公众号和视频。

下面按照本人制作的顺序逐一点评一下。(注:以下比例我都是通过手工测量,再跟查到的历史尺寸数据比较得出的近似值,不一定准确)

全冠100244 虎Ⅰ重型坦克初期型全内构版(比例1/24)

全冠的第三款虎式,俗称“迷彩虎”,比例1:24。因为全冠早期(2019年)也出过一款“沙漠虎”(又称“131虎”),此外还有一款小比例的。

全冠100244 迷彩虎
全冠100061 沙漠虎
全冠100242 小虎式

这是我拼的第一个乐高,上手就是2000+片,还好全冠对这类“大货”都有分包,比如这个虎式有三个大分包,说明书也是按分包顺序来写的,想象一下2000多片,其中不少都是小砖碎砖,都装在一个包里,拼起来是多么令人抓狂的一件事。虽然厂商有分包,但如果你不知道要分类,那在一包里面十几个袋子之间翻来翻去地找件也是很烦人的一件事,所以后来我决定买一个这个——

拼之前先拆袋分好类,可以大大提高效率。如果是持续全身心投入,拼好我估计要一整天吧,不过我都是下班之后拼一个多小时,或者周末拼三四个小时,断断续续用了两周左右,我是比较喜欢这种慢节奏的玩法。

这款我在双十一买了两套,拼好后也放了一套在工位上,比较有成就感 ╮( ̄▽ ̄”)╭

优点:

  1. 外形非常好,在二战题材里,全冠这个新产品线可能是国产品牌里面外形做得最好的。对比先期出的131虎,外形上可以说是一个飞越了。
  2. 履带,全冠的拳头卖点,结实,卡扣拼拆方便,并且拼上不会轻易脱节,因此车体成形后行走非常顺滑,我戏称这套(以及下面另两套1/24比例的)属于是“买履带送坦克”_(:з」∠)_ 这么好的履带不给车体设计悬挂系统有点说不过去啊╮( ̄▽ ̄”)╭
  3. 车体总体比较结实,但尚未达到完美。
  4. 附带配件(武器、工具等)比较多,甚至还有个小水桶,非常的有爱 ╮( ̄▽ ̄”)╭给的小人也比较多,含两个车组乘员,四个步兵,其中甚至包括一个伤兵。这么多配件方便用来搭场景,下面几个全冠的大比例产品都是如此。
  5. 所谓“快拆结构”,方便展示内构。这个设计其实比较普遍了,属于跟风,但确实是值得点赞的。

缺点:

  1. 炮管。其中一个主要的连接件,居然是一个很小的图钉形元件,导致身管极其容易从中间阳痿……我就奇了怪了,为什么不用个圆柱形件来连接呢?
  2. 发动机。终于是摆脱了祖传V12横置发动机了,这里是拼装发动机,外形上还能带来一定的局部可动性(上方的三个轮子),但是两侧的2×1格卡扣形连接件,很难跟两个1×1格柱形件稳定连接,在总装发动机的时候,经常就会biu~的一下飞出去。好在我这两台虎式,虽然在这个位置费了些功夫,但最后总算都能拼上。
  3. 外形上总体很好,但是两侧的路轮(负重轮)比例还是明显偏小了。
  4. 我中奖了,附带的小人里边有一个出现了严重的印刷错位,好在全冠官方的补件系统还是很有效率的,申请补件以后很快就包邮发了一个过来。

对比一下历史上的100号虎,只找到极初期型的——

彩绘:502营的100号虎I,不过这是极初期型。来源:《New Vanguard 005 – Tiger I Heavy Tank》,鱼鹰社
苏军俘获的100号虎历史照片

初期型应该是长这样的,炮塔两侧没有耳朵,储物箱放到了炮塔后面,底盘有倾斜的窄侧裙板——

彩绘:501营的虎I初期型。来源:《New Vanguard 005 – Tiger I Heavy Tank》,鱼鹰社
112号虎历史照片

可见路轮跟底盘裙板下沿的距离没有那么大,而全冠这个迷彩虎侧面路轮和裙板之间有较大的空隙。

最后,再放个我中奖的人仔坏件——

迷彩虎的一个步兵人仔出现印刷错误

这个也找全冠官方补件一并重发了。

全冠100234 鼠式超重型坦克全内构版(比例1/24)

好像这是全冠首款1:24比例的二战陆战兵器?并不确定。这台鼠式很好相当好,比潘洛斯和cobi出的两款外形都要好,而且是唯一的一台“迷彩鼠”。

潘洛斯鼠式:炮塔显得太扁了
Cobi新版鼠式,价格感人

底盘出奇地结实,拼好后可以随意晃,绝对不会散件掉件。不过我拼好这台底盘的一侧在平面上推车行走不太顺畅,略微不太平或者粗糙一点的地面上履带才可以顺畅推动,我看油管上玩家的视频推车都是很顺畅的。

车体和炮塔的内构都有丰富的细节表现——

底盘非常长,长,长,全车相对较重。底盘和炮塔依然是所谓快拆结构,不过底盘比较紧,想拆顶盖并不“快”。又去买了个展示盒罩住它,防止堆灰——

缺点:炮管连接仍然不理想,相当松。最烦恼的是,炮塔上的黑色卡扣(见下图)非常脆,我9个卡扣崩断了5个,不得不申请补件。全冠的官方微信补件小程序还是靠谱的,同一件产品首次补件包邮,这也很纠结:你得全部拼完了才知道有哪些缺件和坏件,但拼完了发现有缺件,等拿到补件,再拆开就有点麻烦。如果多次补件,除了首次,之后每次就要收6元的快递费,可能花6块钱只要补一个1×1的砖,那就亏大了。所以要珍惜每个产品拼完之后剩下来的那些很少量的多余的砖,说不定就能自己补件。

全冠100077-6 sIG33型150mm重型步兵炮(比例1/28)

做完两个大型乐高之后,稍微调整了一下,花半个下午加半个晚上的时间拼了三个颗粒数较少的野战火炮。

首先是这个150榴弹炮,砖数很少,很快就拼好了,外形看着还挺好的,只是炮架结构很简单,大架还是单腿,颇为复古,还送了一个弹药箱和两颗草,插在一块地台板上,作为场景——

不太确定这件是不是从100077里面单拆出来卖的,拼好后对照100077的包装盒绘,虽然外形上很像,但是颜色不一样,不过收到的这件已经是“德国灰”了,所以还更正式一点。

全冠100077-5 PaK40型75mm反坦克炮(比例1/28)

这件仍然是全冠的“英雄与将军”系列,卖家拆套装散卖。

手头刚好有一件2009年做过的田宫1/35比例的PaK40,放到一块对比以下,显然这件乐高在炮盾的中间部分是过度简化了,炮闩附近的细节表现也不是很好,L型折角件部位会让人以为是从这里送弹,其实这里是用来接退膛的炮弹壳的。

同样是1/28比例,这门炮比上面的150毫米炮看起来还更大一些,但用的是最常见的分腿式大架,相比我还是更喜欢这件。

小鲁班M38-B0852 Flak18型88mm重型防空炮(比例1/35)

短暂离开一会全冠,买了件小鲁班出的“世界大战II系列之诺曼底登陆”中的一款88炮,比例1:35。细节自然也随着比例而缩水,更好的一款在下面介绍的1:28那个。但我还是比较喜欢这个外形的,有一点小比例模型(其实1/35在AFV模型里已经中比例了)的味道。小人很特别,有一件镂空的独立马甲,可以选择拼上或者干脆不拼,到这里已经习惯了全冠那种手脚都是两节可动的小人,对这种只有一节手脚的就爱不起来,而且这个颜色有点像美军的。

全冠100252 豹式中型坦克G型全内构版(比例1/24)

又重回2000+片的大货了,这是全冠2023年年底才推出的新品。风格仿上面的“迷彩虎”,但其实颜色还是有区别的,俗称“迷彩豹”或“三花豹”,比例1:24。

这款和鼠式一样有挂垂直的侧裙板,对比一下没挂侧裙板和挂了侧裙板的状态,显然跟迷彩虎类似,路轮看着明显偏小,或者也可以说底盘偏高,不挂侧裙板就能看出跟侧装甲之间有很大的间隙,可是一挂侧裙板,一俊遮百丑——

另一大问题就是炮塔明显偏小——

来对比一下实车的侧面视图——

彩绘:黑豹中型坦克G型侧视图。来源:《New Vanguard 067 – Panther Medium Tank 1942-45》,鱼鹰社。

注意这个图上强调了G型的识别特征之一:弧形炮盾的下部填平成垂直平面。这是因为早期型号的弧形炮盾造成这一块正下方的顶部装甲落入“窝弹区”,对方炮弹射过来可能向下反弹正好击穿自己的顶部装甲(通常都要比正面和侧面装甲都要薄弱)。在全冠的这款迷彩豹的炮塔上也准确还原了这一设计。

黑豹中型坦克G型历史照片。来源:《New Vanguard 067 – Panther Medium Tank 1942-45》,鱼鹰社。

有没有发现全冠迷彩豹的脑袋小了点?所以贴吧上还有网友自己动手改模,改得更符合历史一点——

贴吧网友自主改装的迷彩豹

来,组个简单的场景——

不过这第三方MOC的摩托(近似宝马R75),我大致量了一下,对比网上搜的宝马R75尺寸数据,似乎应该是1/35比例的,跟这个1/24比例的黑豹搭配是显小的,而小人的比例大致是1/20,比摩托还大。

再跟过去自己做过的田宫1/35豹式A型,和威龙1/72豹式G后期型,放到一块对比,照例摆上一元硬币作为参照物——

同为1/24比例的三台车的对比——

这三台1/24比例的大车使用了同款履带,这个履带可能是目前我见过的市面上最好的了,滚动极其丝滑,如果比例合适,装到模型上可能都没有问题吧?

全冠100246 豹式中型坦克G后期型全内构版(比例1/28)

还是拼第二台豹,比例1:28,比上面的迷彩豹要小一些。

发现我拿到的这件,正面首下装甲的两块4×1格梯形砖很松,极容易掉落,算是全冠砖质量的某种反映吧。

比例缩到1/28,但小人还是1/20左右,所以放到底盘里就明显变得很挤了——

不过这个黑豹的发动机倒是比较令人满意,很结实,没有前面迷彩虎那种力大飞砖的卡扣隐患——

全冠将这款产品命名为“豹G()后期型(大雾)”,其实底盘上有个错误。就是侧面尾部这个倒三角形的部分——

这块在迷彩豹里也有,不过迷彩豹因为有侧裙板还可以遮住一下。这个部分其实是D型和A型才有的特征,G型的侧装甲是一道平直的斜直线(参考前面G型的历史照片),其发展的时间顺序是D型→A型→G型。

黑豹A型和G型侧面装甲的对比。来源:《New Vanguard 022 – Panther Variants 1942-45》,鱼鹰社。
黑豹D型历史照片。来源:《New Vanguard 022 – Panther Variants 1942-45》,鱼鹰社

又注意到100246底盘的正面,它显然不是D型,因为D型的副武器机枪口是一个矩形窗口(上图2位置),而100246是一个和A型G型相同的球形机枪塔座;那么是A型底盘吗?也不是,因为它正面没有驾驶座的外掀式窗口(上图3位置),D型和A型都有这个驾驶座窗口,但G型给取消了这个窗口,所以最接近的仍然是G型。再看它底盘的后部——

两个对称的双排气管,这是D型和G型的特征,A型不是这样的,它是一个3+1非对称结构——

黑豹A型背面的历史照片。来源:《New Vanguard 067 – Panther Medium Tank 1942-45》,鱼鹰社。

对比一下我过去做的豹A的背面——

黑豹A型背面特征:3+1布局的排气管

所以100246这个底盘最接近的还确实就是G型,虽然部分对不上。

最后来跟我的迷彩豹对比一下——

个头上是有明显差距,迷彩豹的排气管末端打弯这个是更符合实车细节的。

全冠100080-4 大众82型越野桶车(比例1/28)

买的这一批里面的“大货”差不多都拼玩了,下面几个都是千片以下的中小货,一天能拼好几个。

又一个“英雄与将军”系列被卖家拆套装散卖的。

好吧,这是整件里边我做的第一个非AFV的(宝马小摩托不算的话),比较简单不多说,比较用心地还原了这个双侧反对开的车门——

附送了一块“当心地雷”的路牌和一个拒马,可以用来组个小场景——

MOC产品 sIG18型150mm榴弹炮(比例1/35)

这里买了两款外形较好,且性价比很高的MOC。首先是这门150重炮,没有纸质说明书,只有卖家发来的一份电子版图纸。这个炮的细节真是好丰富啊,可动性也是一流——

但是这个MOC产品有个严重的设计bug,大家来找茬……










答案揭晓——

炮管起始端顶部两侧,两个高低机液压杆怎么也拼不到炮架上 _(:з」∠)_

原因就在这里:液压杆底部的基座上是个2×1的凸件,但是前段的凸起正好挡住了杆的下压角度,导致杆的上部无法接上了。我问过店家,说是设计问题,这也没辙了。此外还有一处,在大架中间那个折叠杆上,按图纸上说的是可以往里折很大的角度,实际只能折到直角附近就折不进去了——

电子图纸给的
实际最多只能折到这个角度

好在这套MOC性价比还是不错的,还附带一个辅助牵引轮装置(军语好像是叫“火炮前车”?)——

要是能解决前面那个bug,我是很推荐这门炮的。

MOC产品 FlaK18型88mm重型防空炮(比例1/28)

这款MOC比例1:28,比小鲁班那款比例要大些,细节也更多,基座的四脚都有垫脚,比较写实。只是炮管的外侧三节接头比较松,容易脱掉,我剪了一小段透明胶带粘在接头件上,这样就可以接插得比较紧一点。

同样地,也附带四个轮子组成的牵引装置,可以拼到一起,再挂个同比例的什么车辆,拖着走,好拉风 ╮( ̄▽ ̄”)╭

全冠100082 Pz.38t轻型坦克E/F型(比例1/28)

我再次回到了全冠的产品线,比例1:28。这个和下面这几个都是无内构或者较少内构的,拼起来比较快,但可评论的点也不多,只能说可玩,但不如全内构那几个好玩,胜在价格便宜,都在35至50元以内,全内构那几件,除了深灰豹可以在适当时机百元以内拿下,另外几件在双十一的时候最便宜也要在120元以上,普遍是在160元左右。

放上小人的场景。我发现不管什么AFV都配个大胡子将军装还煞有介事地罩块黑布当风衣的小人特别滑稽——

这套还附送一张说明卡片,用来介绍武器背景——

全冠100083 鼬式Ⅲ型轻型坦克歼击车H型(比例1/28)

38t的同型底盘变种车,在坦克世界游戏里一度是四五级房的神车。这辆比较遗憾的是炮只有俯仰角,没有水平射界角。

这套也是有送说明卡的——

将两个38t底盘放一块儿比比——

全冠100250 RSO/01牵引车&PaK36型37mm反坦克炮(比例1/28)

最后一件,这是一套组合套装,包含RSO铁驴主体和一门小37炮。这套又是没有采用分包模式,不过600多片也不是特别多,有前面的分格子神器还是好拼的。

先放上37炮,抗战时期中国陆军也装备了这种德械(所谓“37战防炮”)——

很简洁,跟前面的PaK40比起来。可动性很好,只是炮管和炮架连接处有点松。

铁驴主体——

拖拉机/履带式牵引车属于是稀见题材,全冠前面还出过一款RSO,没有买过,据评测说不如我买的这款好看。

这款拖拉机的履带质量有点滑坡,公号里也见人抱怨过,我大概扒拉出了六七片废片,不是咬合的齿扣断就是轴断,好在一包里面有足够的冗余,拼两条完整的履带还是没有问题的。

铁驴拖铁炮——

给的小件是挺多的(油桶、弹药箱、急救包、工具),加块防水斗篷,里面的空间就很小了,由于货舱地面是平板无凸起插点,无法固定小件和人仔,所以就只能摆摆静态造型,还得小心别让它一碰就倒。组个场景——

小结

单就军事类,特别是二战类题材而言,全冠可能是我了解的性价比最好的一个国产品牌,其最打动我的卖点在于外形和可动性,在外形方面我觉得可以算是国货当中做得最好的了,尤其是最近出的几款,仿真度很高,特别是1/24大比例的那几款,内构部分很华丽,履带的可动性特别好,远处看即使当作比例模型也是可以接受的;砖块方面,在新出的产品中大量使用印刷件而不是贴纸,当然是更利于收藏。但1/24的产品目前还比较少,提升空间较大,希望以后能渐渐丰富起来,比如1/24的全内构虎王或者IS-2之类,如果能出那是很值得期待的。

当然全冠的缺点也很明显,主要体现在用料上,公差控制尚不够理想,玩家一定会感到“费手”(比如持续不断地玩一个月,拇指和食指尖端极大概率要长茧 ╮( ̄▽ ̄”)╭)。然后我又买了两款森宝出的迷你小轿车,拼插非常流畅,可见开模水平明显要优于全冠。全冠早期几款二战产品,明显感觉是在“跟随”cobi的步伐,但如果在用料方面如果有所提升的话,将会有更佳的用户体验。此外产品外形虽好,但部分产品还是体现出设计者没有认真考证实车的线图或历史照片,导致对严谨的军事史爱好者来说是个四不像,比如前面提到的100246。在比例方面,部分产品线有待充实,现在全冠的1/28比例较多,但1/24比例的较少,对于希望兼顾全内构和沙盘场景的玩家来说有点无奈。

本期先总结到此,以后可能还会有另外一篇,用来记录另一个华丽的系列,至于是什么?敬请期待 ╮( ̄▽ ̄”)╭

发表在 ✈混迹江湖✈ | 标签为 , , , , | 一条评论

关于ThinkPad T43的FreeBSD显卡驱动与X桌面环境的安装问题

上篇。虽说T43的2200BG网卡是“半”装上了(配了wpa_supplicant以后能发现WiFi并自动associate上),但是另一个问题又困扰了我很久,因为不常上来玩,大概断断续续能有几个月的时间,这就是新手们也常常遇到的X环境起不来。

一开始我参考的是《跑路教程》中相关攻略,安装了drm-kmodxf86-video-ati两个驱动,并在/etc/rc.conf里指定了加载的内核模块——

kld_list="radeonkms"

这台T43使用的是ATI Radeon X300显卡,整机大概2005年上市的,无疑应该是加载radeonkms。可事实上安装X桌面无法正常使用,现象就是“黑屏”(用户目录下的.xinitrc已经配好,无论以DM启动还是直接startx),但不同的桌面黑屏还略有区别:KDE是黑屏中央出现白底的鼠标,鼠标不能移动和任何响应;而Xfce是黑屏一会儿,然后黑色的鼠标可以移动,但是不响应左右按键。刚黑屏时有那么很短的一段时间窗口,我可以按Ctrl+Alt+F1切回TTY0控制台,但是如果动作稍迟一些,或者再TTY console按Alt+F9切回到X桌面(黑屏)之后,就再也切回不到TTY了,也就是相当于“死机”了。不过还好,即使“死机”的情况下,SSH也总是可以远程连上来的(由于无线还不稳定,我以后都插上网线连了),这时候去查看/var/log/Xorg.0.log日志,却发现xorg启动完全正常,连一个(EE)报错都没有,说明驱动程序确实正确驱动了X300显卡。这是怎么一回事呢?

我在FreeBSD的官方论坛上确实看到过有人宣称可以正常跑X桌面的——

FreeBSD 12.2-RELEASE-p7 GENERIC i386
IBM Thinkpad T43
Intel Pentium M processor (Dothan) @ 2.00GHz
2GB PC2-4200 RAM
Hitachi GST Travelstar 7K100 100GB HDD @ 7200 RPM
RV370/M22 ATI Mobility Radeon X300
HL-DT-ST RW/DVD GCC-4242N 0J05
15.0" TFT display with 1024x768 resolution
Intel AC'97 Audio

并且此人还贴出了运行环境的截图——

这几个月来我有空闲就在网上搜索,主要还是官方论坛,尝试了别人提到过的各种“解决方案”,其中比较有帮助的是这两个thread:

https://forums.freebsd.org/threads/black-blank-screen-with-radeon-graphics.83177/

https://github.com/freebsd/drm-kmod/issues/108

后面github上这个issue讨论中有开发人员给出了一个代码fix,看楼主最后的发言似乎没有碰到这个问题了,不知道是不是这个fix的结果。

此外,官方维基也是一个很好的资源——

https://wiki.freebsd.org/Graphics

https://wiki.freebsd.org/GraphicsOld

But anyway,这些仍然没有解决我的T43上X桌面黑屏问题。看到前面的截图装的是FreeBSD 12.2,我决心再重装一遍FreeBSD release 12.2,因为现在是在13.2版本上黑屏。版本12最新的一个应该是12.4 release,但是我看了前面论坛的截图,还是装的12.2,免得万一又要返工重装。而且好在官方论坛上也有攻略:

https://forums.freebsd.org/threads/amd-vega-and-radeon-series-vga-card-driver-for-freebsd-12-1-and-12-2-tutorial-for-beginner-update-2020-12-16.73901/

https://forums.freebsd.org/threads/freebsd-12-2-amd-vega-and-radeon-driver-solution-with-drm5.78080/

这里楼主是通过下载drm的一个特殊分支drm-v5.0-fbsd12.1的源代码编译安装来解决的,在12.2版本上甚至还要修改源代码再安装。我打算先不这么费事,毕竟12.2已经结束生命周期了,drm很有可能已经早已更新,不如先试试直接

# pkg install drm-kmod

然后装了个KDE5,配好.initrc,第一次startx还是没有成功,不过这次不是在13.2上碰到的黑屏,而是xorg报错退出到TTY。研究了一下,好像在/etc/rc.conf里写radeonkms还不行,这应该是13.0之后的写法了,在12.2里要写全路径——

kld_list="/boot/modules/radeonkms.ko"

重启,再次startx,这次成功了,虽然在老旧的T43单核CPU和老旧的X300显卡的加持下稍微久等了一会,不过确实能够进KDE5的桌面。

这次是在没有安装ATI驱动的情况下进入X桌面的,我看了一下/var/log/Xorg.0.log,似乎有几个(EE)报错,然后我又继续安装了ATI驱动——

# pkg install xf86-video-ati

这次把lightdm也打开,再重启,boot过程能看到屏幕分辨率变高了,可是意外的是,没有出现登录界面,X出错退出到TTY——安装了xf86-video-ati反而不能进X桌面了!这很奇怪,我打开/var/log/Xorg.0.log看了一下,xorg确实正确加载了Radeon的驱动,但是最后也确实出错退出了——

[   126.213] (II) RADEON(0): [DRI2] Setup complete
[   126.213] (II) RADEON(0): [DRI2]   DRI driver: r300
[   126.213] (II) RADEON(0): [DRI2]   VDPAU driver: r300
[   126.213] (II) RADEON(0): Front buffer size: 3072K
[   126.213] (II) RADEON(0): VRAM usage limit set to 53193K
[   126.213] (==) RADEON(0): DRI3 disabled
[   126.213] (==) RADEON(0): Backing store enabled
[   126.213] (II) RADEON(0): Direct rendering enabled
[   126.214] (II) RADEON(0): Render acceleration enabled for R300/R400/R500 type cards.
[   126.214] (II) EXA(0): Driver allocated offscreen pixmaps
[   126.214] (II) EXA(0): Driver registered support for the following operations:
[   126.214] (II)         Solid
[   126.214] (II)         Copy
[   126.214] (II)         Composite (RENDER acceleration)
[   126.214] (II)         UploadToScreen
[   126.214] (II)         DownloadFromScreen
[   126.214] (II) RADEON(0): Acceleration enabled
[   126.214] (==) RADEON(0): DPMS enabled
[   126.214] (==) RADEON(0): Silken mouse enabled
[   126.214] (II) RADEON(0): Set up textured video
[   126.214] (II) RADEON(0): [XvMC] Associated with Radeon Textured Video.
[   126.214] (II) RADEON(0): [XvMC] Extension initialized.
[   126.215] (EE) modeset(G0): drmSetMaster failed: Invalid argument
[   126.215] (EE) 
Fatal server error:
[   126.215] (EE) AddScreen/ScreenInit failed for gpu driver 0 -1
[   126.215] (EE) 
[   126.215] (EE) 
Please consult the The X.Org Foundation support 
	 at http://wiki.x.org
 for help. 
[   126.215] (EE) Please also check the log file at "/var/log/Xorg.0.log" for additional information.
[   126.215] (EE) 
[   126.217] (EE) Server terminated with error (1). Closing log file.

反正现在X桌面可以用了,暂时不急着跟踪这个Radeon显卡驱动的问题。

这样起来的X桌面仍然有个问题:触摸板(Synaptics Touchpad)不工作,以及触摸板下方的两个按键也不工作。只有ThinkPad指点杆(即“小红点”)能操纵鼠标,触摸板上方的按键可以正常工作(鼠标左右键,以及中间可模拟滚轮的按键)。在Xorg.0.log里也确实有报告出错——

[    51.723] (II) config/udev: Adding input device SynPS/2 Synaptics TouchPad (/dev/input/event5)
[    51.723] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "libinput pointer catchall"
[    51.723] (**) SynPS/2 Synaptics TouchPad: Applying InputClass "libinput touchpad catchall"
[    51.723] (II) Using input driver 'libinput' for 'SynPS/2 Synaptics TouchPad'
[    51.723] (**) SynPS/2 Synaptics TouchPad: always reports core events
[    51.723] (**) Option "Device" "/dev/input/event5"
[    51.737] (II) event5  - SynPS/2 Synaptics TouchPad: is tagged by udev as: Mouse Touchpad
[    51.737] (EE) event5  - SynPS/2 Synaptics TouchPad: kernel bug: device has min == max on ABS_X
[    51.737] (II) event5  - SynPS/2 Synaptics TouchPad: was rejected
[    51.737] (II) event5  - not using input device '/dev/input/event5'.
[    51.737] (EE) libinput: SynPS/2 Synaptics TouchPad: Failed to create a device for /dev/input/event5
[    51.737] (EE) PreInit returned 2 for "SynPS/2 Synaptics TouchPad"
[    51.737] (II) UnloadModule: "libinput"

触摸板在官方维基上有段攻略——

https://wiki.freebsd.org/SynapticsTouchpad

而官方FAQ上又有另一段攻略——

https://docs.freebsd.org/en/books/faq/#x-and-synaptic

然则这两种方法都试过,还是不好使。

小结

关于ThinkPad T43上安装FreeBSD使用X桌面的问题,对于我个人遇到的情况就是这么几点:

  1. 系统不要安装13.2 release,而要安装12.2 release。不确定12.4是否能正常使用X。
  2. 驱动安装12.2下最近的drm-kmod,而暂不安装Radeon单独的驱动xf86-video-atirc.confkld_list模块要写Radeon的全路径,这样X桌面可以起来,虽仍有些I/O设备的小问题,但不影响使用。

以上经验仅限于我个人,不确保你也会遇到同样的情况,FreeBSD就是这样,case by case,不过一旦配好了,就往往稳如狗。Radeon驱动和触摸板问题还没有解决,有空继续研究,如果有进展就更新到本篇日志里。


2023.9.3更新

未曾想本篇日志刚发完几个小时之后就首更了 ╮( ̄▽ ̄”)╭ 一个好消息,一个坏消息,你先听哪个?

那就先说好消息:X桌面触摸板不工作的问题解决了。感谢官方bugzilla的群众答疑:

https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=251149

没想到竟然是12.1升到12.2就带来了这个问题。在这个thread里有人给出了一个workaround:在/etc/sysctl.conf里加一行——

kern.evdev.rcpt_mask=3

然后重启就能用触摸板了,而且前面官方维基上提到的对xorg.conf的那些修改都不是必要的,awesome!

然后是“坏消息”,其实也没有坏到哪里去,我又想再试试Radeon驱动,于是重新安装了xf86-video-ati,这次试验的结果与之前似略有不同:首次重启能看到X桌面管理器的登录界面了(我这里用的是lightdm),而且也可以登录进X桌面(这里用的是Xfce),正常使用,问题是logout的时候xorg就崩了。/var/log/Xorg.0.log显示——

[   651.644] (EE) modeset(G0): drmSetMaster failed: Invalid argument
[   651.644] (EE) 
Fatal server error:
[   651.644] (EE) AddScreen/ScreenInit failed for gpu driver 0 -1

/var/log/lightdm/x-0.log似乎有点细节——

(==) Using system config directory "/usr/local/share/X11/xorg.conf.d"
(II) [KMS] Kernel modesetting enabled.
scfb trace: probe start
scfb trace: probe done
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to open radeon: Cannot open "/usr/local/lib/dri/radeon_dri.so" (search paths /usr/local/lib/dri, suffix _dri)
failed to load driver: radeon
MESA-LOADER: failed to retrieve device information
MESA-LOADER: failed to retrieve device information
kmsro: driver missing
(EE) 
Fatal server error:
(EE) AddScreen/ScreenInit failed for gpu driver 0 -1

这应该算是“进展”而不是“坏消息”对吧?

但是目前还是没找到解决办法,我又再次卸掉了xf86-video-ati,重启后X桌面可以正常登入登出,触摸板也好使。

Have a nice day!


2023.9.9更新

一个小问题。装好了X桌面以后我还想在Windows主机上远程访问我的FreeBSD桌面,这个简单,装一个xrdp即可。

# pkg install xrdp

装完以后别忘了在/etc/rc.conf里加上——

xrdp_enable="YES"
xrdp_sesman_enable="YES"

然后把你要登录的用户目录下面的.xinitrc拷贝一份出来,改个名字叫startwm.sh,重启,按说这下应该就能够在Windows上远程访问FreeBSD桌面了。

但是不,我看到的是一个光秃秃的桌面,只打开了一个console窗口,这就是最最简单的那个桌面——xterm,没有看到我在用户目录下面startwm.sh里指定启动的那个桌面,比如xfce。很显然,xrdp没有执行我的~/startwm.sh脚本,而是执行的其缺省目录下的/usr/local/etc/xrdp/startwm.sh,里面启动的桌面正是——

exec xterm

能启动桌面至少说明xorg和xrdp工作都是正常的,一定是配置问题。翻看日志文件/var/log/xrdp-sesman.log

[20230909-15:06:14] [INFO ] starting xrdp-sesman with pid 823
[20230909-15:06:19] [INFO ] receiving SIGHUP
[20230909-15:06:19] [INFO ] configuration reloaded, log subsystem restarted
[20230909-17:02:57] [INFO ] Socket 12: AF_INET6 connection received from ::1 port 16370
[20230909-17:02:57] [INFO ] Terminal Server Users group is disabled, allowing authentication
[20230909-17:02:57] [INFO ] ++ created session (access granted): username xxxxxx, ip ::ffff:192.168.xx.xx:54245 - socket: 12
[20230909-17:02:57] [INFO ] starting Xorg session...
[20230909-17:02:57] [INFO ] Starting session: session_pid 1481, display :10.0, width 2268, height 932, bpp 24, client ip ::ffff:192.168.xx.xx:54245 - socket: 12, user name xxxxxx
[20230909-17:02:57] [INFO ] [session start] (display 10): calling auth_start_session from pid 1481
[20230909-17:02:57] [ERROR] sesman_data_in: scp_process_msg failed
[20230909-17:02:57] [INFO ] PAM: Last login: Sun Sep  3 19:45:41 from :0
[20230909-17:02:57] [ERROR] sesman_main_loop: trans_check_wait_objs failed, removing trans
[20230909-17:02:57] [INFO ] Starting X server on display 10: /usr/local/libexec/Xorg :10 -auth .Xauthority -config xrdp/xorg.conf -noreset -nolisten tcp  
[20230909-17:02:58] [INFO ] Found X server running at /tmp/.X11-unix/X10
[20230909-17:02:58] [INFO ] Found X server running at /tmp/.X11-unix/X10
[20230909-17:02:58] [INFO ] Session started successfully for user xxxxxx on display 10
[20230909-17:02:58] [INFO ] Starting the xrdp channel server for display 10
[20230909-17:02:58] [INFO ] Found X server running at /tmp/.X11-unix/X10
[20230909-17:02:58] [INFO ] Session in progress on display 10, waiting until the window manager (pid 1483) exits to end the session
[20230909-17:02:58] [INFO ] Starting window manager on display 10 from user home directory: /home/xxxxxx/startwm.sh
[20230909-17:02:58] [ERROR] Error calling exec (executable: /home/xxxxxx/startwm.sh, arguments: startwm.sh ) returned errno: 13, description: Permission denied
[20230909-17:02:58] [INFO ] Starting the default window manager on display 10: /usr/local/etc/xrdp/startwm.sh

问题就在这一行——

[20230909-17:02:58] [ERROR] Error calling exec (executable: /home/xxxxxx/startwm.sh, arguments: startwm.sh ) returned errno: 13, description: Permission denied

这就很明显了,是我忘了给~/startwm.sh加权限。所以先给它改个owner——

# chown <username> ~/startwm.sh

再加上可执行权限——

# chmod +x ~/startwm.sh

再访问一下xrdp,这下就可以看到xfce的桌面了。


2023.9.19更新

昨天手残,干了件蠢事。

我发现在12.2-RELEASE上装不了chrome浏览器(其实是开源版本的chromium),在三个国内可用的package源上都找不到。pkg install chromium返回的是——

pkg: No packages available to install matching 'chromium' have been found in the repositories

我打开了freebsd.org缺省的package源,结果也没找到。此外,我也想体验一下另一个有趣的shell叫starship的,也install不了。在官方论坛上的某人回帖里提到:要升级到12.4才有,而且还得从ports编译安装。我想是不是12.4现在已经重新加进package源了不用自己编译安装(就像12.2的drm-kmod那样)?所以就手贱了,升到了12.4(参考跑路手册)——

# freebsd-update upgrade -r 12.4-RELEASE

然后就碰到麻烦:X又进不去了。

/var/log/Xorg.0.log显示——

(WW) glamor requires at least 128 instructions (64 reported)
(EE) modeset(0): Failed to initialize glamor at ScreenInit() time.

我想既然升到12.4了,那么前面在12.2上Radeon驱动无效的问题是不是已经解决了?所以又再次pkg install xf86-video-ati装了一遍驱动,谁知道这下情况更糟了,开机的lightdm或者startx都会直接导致黑屏,然后过了一会系统就crash了,而且crash之后产生dump只能重启,我是重复crash了好几次之后才拼手速root登录进了一个TTY(因为重启即使能进单用户模式,/etc/rc.conf也是只读的改不了),把lightdm_enable给注释掉了。然后才终止了无尽的crash循环(除非手工startx),/var/crash下面产生了好几个几百兆的vmcore文件。

我赶紧删了xf86-video-ati,忽然想试试安装xf86-video-amdgpu是不是有戏?结果发现startx确实可以进X桌面,不过有个问题:任务栏和所有窗口的头都没有了,因此点不了叉来关闭窗口。我只试了KDE5,不知道其他桌面是不是也是这样。实际上xf86-video-amdgpu“起作用”乃是一种错觉,事实是“没有起作用”,真正“起作用”的乃是删除了xf86-video-ati

经过这一番无谓的折腾,我不得不重新降回12.2-RELEASE——

# freebsd-update rollback

好在只进行过一次升级操作,freebsd-update只能回滚一次。

但这次折腾发现了一点规律:12.4在机器引导过程中会刷新一次分辨率,这台T43的分辨率是1024×768的,boot过程中一开始是DOS感的640×480分辨率,当走到drm阶段,屏幕分辨率忽然切换到了1024×768。这和我在12.2上安装xf86-video-ati之后碰到的现象是一样的。而当我删除xf86-video-ati,安装xf86-video-amdgpu之后,则不会自动切换到1024×768。这症状看上去就是:当TTY控制台在低分辨率(640×480)时,可以startx进入桌面,而在高分辨率(1024×768)时反而不能。

于是我就去找怎么在12.4引导过程中保持640×480分辨率(不让它切换到1024×768),看man手册/boot/loader.conf里有几个参数——

hw.vga.textmode=1 # 这条好像不是关键参数
kern.vty=sc # 缺省是vt,改成sc

改了以后重启,引导过程中分辨率确实没有切换,但是startx也仍然进不了桌面。

不过这个参数倒是让/etc/rc.conf里设置的TTY屏保参数生效了——

saver="beastie" # 屏保模块的名字,参考/boot/kernel/*_saver.ko
blanktime="600" # 空闲等待的秒数

如果kern.vty=vt或不设这个参数,控制台屏保就不起作用(参考官方维基)。

发表在 ☞菜鸟的UNIX观☜ | 标签为 , , , | 留下评论

再探Windows和FreeBSD双引导

我又来捡垃圾了 _(:з」∠)_

五一前后淘来台二手ThinkPad T43,据说是T系列里面IBM贴标的最后一款。到手以后发现除了光驱不能读盘,其他都还好。我这台还是奔腾M750处理器,仅支持32位,所以计划安装Windows XP和32位的FreeBSD 13。

2005年上市的T43,已有将近二十年

网上的说法,由于Windows安装过程会覆盖FreeBSD的引导信息,所以还是先装的32位Windows XP专业版(从MSDN I Tell You上下载官方原版盘,从联想官网上下载驱动,干净)。这台二手机标的是60G IDE硬盘,实际卖家给了80G,转换成标准大概75G多一点,因为我是拿来当作实验机,不准备常用Windows,所以只给Windows分了15G的空间。

余下60G左右全部用来装FreeBSD。还是从官网下载32位的U盘镜像(千万别下ISO镜像,除非你打算装在虚拟机上),再用rufus烧录到U盘。这里先向大家介绍一本比较好的中文手册(非官方手册中文版,当然官方手册也相当好,可以一并参考),书名比较无厘头:《FreeBSD从入门到跑路》,非常适合新手避踩坑。开始装,注意在Partitioning一步要选Auto (UFS),但是接下来千万别选Entire Disk,不然就把前面刚装好的Windows XP给冲了,要选Partition,由于是先装了Windows,占用了ada0s1,所以应该把FreeBSD装到ada0s2上,在它内部再分子分区则可以让安装程序给你自动分配,通常是根分区(/,freebsd-ufs格式)在前,交换分区(freebsd-swap格式)在后,但是这里我手贱了一下,选择自己定义,先定义了2G的交换分区(这样跟内存大小平齐),然后余下的作为文件系统根分区。这个操作后面带来了一些问题。

尽管是将近20年前的老机型,但装FreeBSD也还比较快,只是安装过程能够识别Broadcom NetXtreme有线网卡,却没有识别Intel PRO 2200BG无线网卡,不过可以留到后面再解决。这台机子甚至还有modem拨号口,但是紧挨着网线口,鉴于多次亲眼目睹过有人把电话线插网口上导致烧卡甚至烧主板,这种设计我还是很心惊的 _(:з」∠)_

装完重启,果然事事不能尽如人意,它还是进了FreeBSD的引导界面,提示——

No /boot/loader

FreeBSD/x86 boot
Default: 0:ad(0,a)/boot/kernel/kernel
boot:
No /boot/kernel/kernel

显然是没有找到正确的引导程序。由于我前面给系统手动分区的时候把交换分区放在前面,根分区放在后面所以这里的ad(0,a)显然是不正确的,这里只有一块硬盘,Windows所在分区是ada0s1,FreeBSD交换分区是ada0s2a,而FreeBSD根分区的label则应该是ada0s2b,所以我在boot后面输入——

0:ad(0,2,b)/boot/loader

这次就顺利引导了安装好的FreeBSD。

在FreeBSD里面用gpart查看一下分区——

~ # gpart show
=>       63  156301425    ada0  MBR                (75G)
         63   31464657       1  ntfs               (15G)
   31464720  124836768       2  freebsd  [active]  (60G)

=>        0  124836768  ada0s2  BSD                (60G)
          0    4194304       1  freebsd-swap      (2.0G)
    4194304  120642464       2  freebsd-ufs        (58G)

可见每当安装FreeBSD的时候,它就会自动把自己所在的主分区设置成活动分区,因此机器启动并没有进入Windows的引导程序ntldr。我把第一个分区设成active——

~# gpart set -a active -i 1 /dev/ada0

然后按照这里攻略说的,导出FreeBSD的引导文件——

~# dd if=/dev/ada0s2 of=/root/freebsd.boot bs=512 count=1

但是我把这个freebsd.boot文件拷贝到FreeBSD的安装U盘里边了,拿到Windows里不能识别这种格式的U盘,我又只好去下了个DVD格式的FreeBSD安装光盘ISO文件,把boot/boot1文件提取到Windows的C盘根目录下,再修改同样位于C盘根目录下的boot.ini文件——

[boot loader]
timeout=30
default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS

[operating systems]
multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows XP" /fastdetect
C:\boot1="FreeBSD"

这样重启就能看到启动菜单里边有Windows XP和FreeBSD两个选项,此时选择FreeBSD会进入它的启动阶段一,但是仍然看到前面的“No /boot/loader”错误,好在已解决了手动boot的问题。

先插上网线,换源、用有线网络freebsd-update、更新ports三连,然后pkg install一堆必要的软件,其中最主要的就是fusefs-ntfs,可以把Windows分区给mount过来,然后用前面那个dd命令导出一个freebsd.boot引导文件到Windows的C盘下面,但是在boot.ini里用这个文件引导效果仍然跟从光盘里拷出来的boot1是一样的,没有找到正确的boot loader位置。

这个问题暂时搁置,先忍耐一下每次启动先敲一遍0:ad(0,2,b)/boot/loader

回到前面2200BG无线网卡不识别问题。在FreeBSD官网的硬件适配说明中提到:Intel PRO/Wireless 2200BG无线网卡需要安装iwi驱动。man手册中说,需要在/boot/loader.conf里面加两行——

if_iwi_load="YES"
legal.intel_iwi.license_ack=1

而在/etc/rc.conf里也配置了wlan0——

wlans_iwi0="wlan0"
ifconfig_wlan0="WPA DHCP"
background_dhclient="YES"

在/etc/wpa_supplicant.conf里设置好WiFi的SSID和密码——

ctrl_interface=/var/run/wpa_supplicant
eapol_version=2
ap_scan=1
fast_reauth=1

network={
	ssid="XXXXXXXX"
	psk="xxxxxxxx"
}

这样启动FreeBSD确实可以识别到2200BG无线网卡,而网卡也能扫描发现附近的WiFi AP接入点,但是WPA就是不能自动associate上我指定的SSID。这很奇怪,网上搜了一圈,也发现有人的2200BG也确有类似情况。这个问题困扰了我个把月,现在还没有什么进展,因此也就暂时搁置了,在FreeBSD下面先用有线忍耐将就一下。

又及:听闻FreeBSD 14.0 release的计划在五月底的时候就delay了,据说是在等待OpenSSL 3.0的最新安全补丁,所以原本7月底正式release的目标泡汤了。好消息是本月release时间表又active了,不过release推迟到了10月下旬。我打算届时装个14.0看看能不能解决这个无线网卡问题。

发表在 ☞菜鸟的UNIX观☜ | 标签为 , , , | 3条评论

Windows Server和FreeBSD的双引导

近期又淘了一台二手ThinkPad T540p,虽然这款工作站笔记本上市已有近十年了,不过到手感觉成色尚好:i7-4800MQ和双显卡(Intel集成显卡HD4600,以及GeForce独立显卡GT730M),16G内存,512G SSD,带DVD刻录机,接口齐全,用来当家庭实验机,性能还是相当不错的。

我打算装两套服务器系统,一套Windows Server 2022,一套FreeBSD,所以又买了块价格相当便宜的金胜维512G的M.2接口的SSD卡(SATA协议,因为据说这台工作站不支持NVMe协议的SSD卡)。计划是把两个操作系统分别装在两块SSD硬盘上,而不用去在同一块盘上折腾分区。

愿望是美好的,现实是骨感的。这么一件看上去应该很简单的事情,在实施过程中踩到了好多坑,我感觉有必要记录下来,作为一点经验小结。以下攻略并非按照本人实际进行过的顺序,因为碰到多个不同的问题,尝试了不同的试错组合,同一件事可能做过多次,因此这里就不重复叙述,仅按照碰到和解决问题的场景记录。

分区格式问题

分别安装两个系统到两块不同的硬盘,这个当然是很简单的。由于上来一些设备驱动还没有,所以什么蓝牙鼠标呀都还用不了,只能使用笔记本自身的触摸板,需要注意一点的是,T540p这款工作站的鼠标设备有些特殊,不是像ThinkPad传统的“实体三键+触摸板”布局,而是将“三键”集成到了触摸板上,说实话这样的手感大不如传统的实体三键。

注意触摸板上方的三键,和触摸板是一体的

所以安装的时候要注意不要手滑,比如Windows Server在选择安装的硬盘和分区时候,不会给你一个“确认”的提示框,一点下一步就开始安装了,所以千万不要删错分区选错盘。

这里开始有第一个坑,不是在一开始就碰到的,而是在我把两个OS都安装好以后,准备引导程序的过程中才发现的,但是在这里需要首先指出来:在制作Windows的USB安装盘的时候,最好是选择MBR格式的分区

由于我是用Rufus这个工具来制作USB安装盘的,它默认的分区格式是GPT,我一开始没多想,直接点了“开始”烧录启动盘,结果安装出来的Windows Server所在硬盘分区就是GPT格式的。但是安装FreeBSD的时候却是MBR的分区,在后来进行引导的时候总是不成功。由于我的Windows Server所在SSD盘只有512G,所以这里使用MBR分区是完全没有问题的(超过2T的硬盘才考虑采用GPT分区)。当然,这样也就要在开机选择Legacy BIOS启动而不需要UEFI启动(如果是UEFI启动在安装FreeBSD之后还需要做一些额外的配置)。

Windows Server 2022无线网卡不工作问题

看到网上有些攻略说是要先装Windows,然后再装FreeBSD,这里可能是针对两个系统都安装在同一块硬盘上的说法,因为Windows会将自己的引导程序覆盖其他操作系统的。而我现在是将两个OS分别安装在两块硬盘上,不过我还是先在第一块SSD(二手笔记本自带)上安装Windows Server 2022,然后在第二块SSD(另外买的M.2接口SSD卡)上安装FreeBSD 13.0,过程都很简单。

对于FreeBSD,在安装过程中就能进行无线网络设置。

当我登录进FreeBSD之后,无需手工安装驱动,就能看到wlan设备已经up起来了,事实上我后续进行pkg update,pkg upgrade,还是pkg install,都能通过无线网络顺利进行。

但是当我进入Windows Server 2022的时候,似乎碰到点麻烦:任务栏右下角的“网络”图标点开并没有无线局域网的图标,打开“网络设置”,查看具体的网卡,也只能看到有线网卡,看不到无线网卡。进而再打开“设备管理器”,确实可以看到一个“网卡”的设备,但被识别为“未知设备”。之前无论我是通过联想官方的System Update程序自动下载安装,还是从联想官网上下载离线程序到电脑上手工安装,这个无线网卡始终无法正确识别,其中System Update每次打开总是显示WLAN驱动是有更新,但其实总是同一个版本的程序,已经反复安装了多次了。

在FreeBSD上能正常使用的无线网卡,到了Windows Server上怎么就不能识别了呢?经过在网上的一番百度,才知道Windows Server 2022缺省并没有启动无线网卡,需要在“服务器管理”界面上手工添加,并且wlansvc服务还要手工启动之后才能正常使用(参考攻略):

还有的攻略说要添加“DirectPlay”“优质Windows音频视频体验”两项功能,其实不是必须的(或许对显卡驱动有些影响)。

这样T540p的无线网卡就能使用了:点击任务栏右下角的网络图标,能够打开搜索到的WiFi列表,在“设备管理器”里也识别出了Intel AC 7260无线网卡。

然而很快,我又发现了新问题:我能看到很多别人的WiFi SSID,唯独看不到我自己的路由器!真是奇了怪了。不过很快想到,去年夏天我升级了一下网络,换成了MESH路由器,而且无线可以支持WiFi6,或许这个无线网卡认不到WiFi6的网络?可是不对……因为我在FreeBSD里不是可以正常访问同一个路由器的WiFi吗?

又要百度了……然后也找到了原因这个7260网卡需要将驱动升级到18.33.13.4或之后的版本才能支持WiFi6。但是7260早就停产了,而且杯具的是,Intel官方干了件缺德事儿:连官方驱动都从官网上下架了,不!提!供!下!载!

幸好还是有好心人提供攻略的,还有别的地方提供了临时的驱动下载源,感谢!╮( ̄▽ ̄”)╭

装上这个版本的驱动之后,确实能找到我的路由器WiFi的SSID了。

双重引导遇到的问题

首先得说的是,对于每块硬盘都只有一个OS的情况,做多重引导并不是一个必选项,因为用户可以在开机进入BIOS修改启动顺序,总能进自己想进的OS,无非就是稍显麻烦一些罢了。

但有个开机引导菜单项的话,总是比较方便的。在这里可以有两种选择:

第一种是从Windows的引导菜单里直接进入FreeBSD。这需要首先从FreeBSD导出引导文件,网上也有攻略。或者从FreeBSD的安装光盘的/boot目录中中拷贝boot1文件,或者通过命令行导出(比如我是安装在第二块SSD上,设备号为ada1)——

# pkg install fusefs-ntfs
# mkdir /mnt/usbdisk
# ntfs-3g /dev/da0s1 /mnt/usbdisk
# dd if=/dev/ada1s1 of=/mnt/usbdisk/bootsect.bsd bs=512 count=1

这里由于U盘是NTFS格式,所以需要先安装一个fuse才能挂载,然后将引导文件导出到U盘。将boot1文件或上面导出的bootsect.bsd文件拷贝到Windows Server的C盘根目录下。上面的攻略说是修改C:\boot.ini来添加启动项,兰鹅这已经是老皇历了,在Windows 7以后就不再用这个文件了,而是通过bcdedit命令行工具来添加启动项,在这里有详细步骤,对于我的这个具体情况,可以这么来添加——

> bcdedit /create /d “FreeBSD" /application bootsector
> bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} device partition=C:
> bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} path \boot1
> bcdedit /displayorder {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /addlast

再用bcdedit命令查看一下——

Real-mode Boot Sector
---------------------
identifier  {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx}
device      partition=C:
path        \boot1
description FreeBSD

如果是在FreeBSD里用命令行导出的引导文件,那上面的boot1就要改成bootsect.bsd。除了一般的bcdedit命令行,还有第三方的GUI图形界面工具来干同样的事情(添加启动项),比如bcdtool——

于是这样就添加了一个开机启动菜单里的新项目“FreeBSD”。但——是——,很遗憾,这种方法我试验失败了:开机的引导菜单确实出现了Windows Server和FreeBSD两个引导项,但选择新建的FreeBSD却无法引导。于是我只好转向——

另一种方式,则需要借助第三方工具,比如grub4dos或者更新一些的grub2,来间接引导FreeBSD。这里我用的是传统的grub4dos,有0.4.4稳定版和0.4.6a最新版,我下载了0.4.4版。grub4dos有简明的使用指南,不过我主要参考了别人的攻略,而menu.lst的写法是参考这里,稍加修改——

timeout 30
default 0

title FreeBSD
root (hd1,a)
kernel (hd1,a)/boot/loader
boot

title Back to Windows boot menu
rootnoverify (hd0,0)
makeactive
chainloader +1

title Reboot
reboot

title Shutdown
halt

这里还添加了“重启”和“关机”两个菜单项,再把menu.lst连同grldrgrldr.mbrgrub.exe这四个文件丢到Windows的C盘根目录下,然后像前一种方法那样,用bcdedit为grub4dos添加一个启动项——

> bcdedit /create /d “grub4dos" /application bootsector
> bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} device partition=C:
> bcdedit /set {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} path \grldr.mbr
> bcdedit /displayorder {xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx} /addlast

重启,引导菜单出现了Wiondows Server和grub4dos两个引导项,选择grub4dos,就会进入grub的引导界面有FreeBSD、Back to Windows boot menu、Reboot、Shutdown四个选项。我选FreeBSD,哐当,出错了——

hd(1,a)
Error 17: Cannot mount selected partition.

百度了一下,说是对于FreeBSD来说,必须得有3个参数,比如我的FreeBSD装在第二个SSD上,设备号是ada1,那么第一个slice就是ada1s1,而操作系统的根分区是ada1s1a,因此menu.lst里边得这么写——

title FreeBSD
root (hd1,0,a)
kernel (hd1,0,a)/boot/loader
boot

第三句也可以简写为

kernel /boot/loader

保存重启,进grub菜单,进FreeBSD选项,照理说应该能够找到根分区的,可是被现实无情地打脸了——

hd(1,0,a)
Error 17: Cannot mount selected partition.

那么应该是

root (hd1,0)
kernel /boot/loader

吗?我试了试这种情况,仍然没有引导成功,但是,情况似乎跟上面又有所不同——

Can't work out which disk we are booting from BIOS device 0xffffffff
...
Cannot open /boot/lua/boot.lua: No such file or directory.

这样子看起来它确实是找对了分区,但是却没找到引导文件?

我很不甘心,于是抛开百度,上Google上去找,找了两天,终于在一个长得很像stackoverflow的网站上找到一个解答,在这个问题下面的第一个回答里提供了一个思路,就是使用rootnoverify+chainloader的方式,先找到OS所在分区,然后让OS自己去找应该用什么引导文件(而不是我来手工指定)。我尝试了这个方法,修改menu.lst之后,重启进入grub菜单,这次真的是可以进FreeBSD了!

附最后成功的menu.lst(稍微加了点界面美化)——

color blue/green yellow/red white/magenta white/magenta
timeout 30

## menu border color
color border=0xEEFFEE
## set vbe mode
graphicsmode -1 640:800 480:600 24:32 || graphicsmode -1 -1 -1 24:32

default 0

title FreeBSD
rootnoverify (hd1,0)
chainloader (hd1,0)+1

title Back to Windows boot menu
rootnoverify (hd0,0)
makeactive
chainloader +1

title Reboot
reboot

title Shutdown
halt

折腾结束。

总结

本人并非从事系统维护的人员,上述的坑对于相关的专业人士来说可能是很简单的小儿科问题吧 ╮( ̄▽ ̄”)╭

下面是本次试验的经验总结:

  1. 制作Windows Server的USB安装盘时,最好选择MBR分区格式。安装Windows Server和FreeBSD时,均安装在MBR分区上。
  2. 需要在Windows Server的服务器管理中先安装/添加“无线网卡”的功能,并且要手工启动wlansvc服务之后,才能正常使用无线网卡;而对于T540p的Intel AC 7260无线网卡,用官方的System Update安装的无线网卡驱动只能看到旧的WiFi路由器,需要安装版本号为18.33.13.4或之后的驱动,才能在看到WiFi6路由器。
  3. 如果使用Grub4DOS工具为Windows添加开机引导项,在其menu.lst文件中不用root,而采用rootnoverify+chainloader方式引导FreeBSD。

以上便是一周多以来反复试验Windows Server 2022 + FreeBSD双重引导的一点浅薄经验,至于如何把FreeBSD的boot引导文件直接添加到Windows引导菜单(从而避免使用grub4dos之类的工具),还有待进一步摸索。

发表在 ☞菜鸟的UNIX观☜ | 标签为 , , , | 一条评论

ChatGPT一个可能的意外副作用:钓鱼常态化

从2022年末到2023年初,IT界最火爆(可以说没有之一,甚至可以说是自互联网以来)的现象级产品就是OpenAI公司的智能聊天机器人ChatGPT。对于这个东西,业界给了前所未有的溢美之词,核心意思就是“它会颠覆生态”(生态位大致对标——甚至很有可能超过——互联网和手机的诞生),以至于对这个行业的巨头也产生了强大压力,Google、微软、百度都不得不被迫跟进,甚至不惜冒着名声受损的风险,急于发布自己很不成熟的类似产品

进入本世纪第二个十年的中后期,IT产业也曾先后多次出现被业界追捧的新概念、产品乃至新业态,主要有:

  • 互联网金融:一部分以数字支付为代表,基本通过了历史的检验,融入了社会基础设施,算是一个正面典型。另一部分以P2P为代表,最后的狂欢收割完一大批韭菜,以极稀少的几个头部高位套现退场而收场,则是一个反面典型。
  • 新视频和新电商:以抖音带货为代表。主要不在于技术门槛的突破,而是在成熟技术提供的新平台上的商业模式创新,为就业和自由职业者开辟了传统个人发展路径之外的新赛道,得到了来自官方的政策扶持。但同时围绕流量经济带来的单纯逐利效应,经过时间检验之后就暴露出大量负面问题(KOL在工业时代也是可以通过MCN等渠道流水线生产出来的)。
  • 区块链:以比特币为代表。大部分围绕币圈制造出来的各种“郁金香”“君子兰”等类庞氏局继续割韭菜,还有一部分成为以NFT为代表类金融产业(是不是多半也会沦为韭菜盘?就见仁见智了),只有少部分整合进了数字货币等有官方支撑的正规产业。
  • 自动驾驶:以特斯拉为代表。由于是跨行业技术,蓝(da)图(bing)上的拉动效应至少能看得到,得到了来自官民两面的政策和资本扶持,其未来还有待检验。
  • 元宇宙:以Fackbook高调转型Meta为代表。其前置的VR产业本身似乎还没有成长到人们所预期的程度,Metaverse的概念炒作差不多充满了整个疫情期(不知道这算是是洗具还是杯具),离落地似乎仍有很大距离,已经有人开始怀疑很可能其中会有相当大一部分将沦为新的韭菜盘。

可以看出,之前新冒出来的这些概念/技术/产品,真正能沉淀下来,未来回顾历史的时候能记下一笔的,其实并不占多数。但这段时间ChatGPT给人营造出来的(目前尚未经过时间检验)观感,似乎有所不同,好像是真有成为一场“革命”的意思。

关于这一点,ChatGPT自己倒是颇有自知之明,对于我的提问它明确回答自己是一款基于学习型的交互式AI——

从工科男的视角看来,ChatGPT作为一个“黑箱”,输入端接收人类(或者其他的,比如另外一个ChatGPT?)的自然语言和文字信息,输出端吐出具有因果相关性的同语言的文字信息。如果ChatGPT自身没有内置一组规则来鉴别的话,那很有可能被不怀好意的人类“玩坏”。目前已经发生过的事件(包括但不限于):

然后我昨天就碰到了一件疑似“ChatGPT式假新闻”的案例。起因是某个公众号上看到这么一则据称是纽约时报的报道截图——

这则报道给我感觉很违和,特别是其中有这么一句——

这句话是很奇怪的,沙特被安理会制裁了吗?我初步怀疑这则报道可能是假的,其中上面这句话可能是把别的新闻报道中的部分文字材料进行过偷梁换柱,比如把“朝鲜”或“伊朗”替换成了“沙特”。于是我上NYT官网上去找,无论是英文版还是中文版都没有找到上述“报道”的原始出处。我注意到上述截图中的两处关键信息:作者Marc Santora,以及发表时间2023年2月27日。Marc Santora确实是NYT的撰稿人,在NYT官网上很容易查到Santora发表过的稿件——

大致翻了一下,此人的主要关注方向是俄乌战争,并且于2月27日发表在NYT上的所有稿件只有下面这些——

完全没有前面截图提到过的内容。至此,我大致可以说,这个截图很可能是个P图作品制造的假新闻。这是一个“有图未必有真相”的年代。

联想到近来火爆的ChatGPT,我打算做个试验,让ChatGPT模仿NYT写一篇这个题材的假新闻——

我点击了“Regenerate response”多次,得到的都是内容大同小异的“洋八股”。我也请朋友帮我进行了类似试验——

在这个回答里就有关于“武器禁运决议”的内容,但是逻辑确是莫名其妙:沙特跟朝鲜和伊朗的禁运有什么关系?

(好吧,这个图是用来搞笑的)

联想到原截图里面那句关于“制裁”的表述,跟这里就很相似了。因此我怀疑,P这张图的原始文字有可能是来自ChatGPT生成的产物。假使真是如此,那也并不意外,因为前面我举的例子里就有杭州某市民利用ChatGPT制作散发谣言的。

问题还不仅于此,这张(暂且称为)疑似P图,是另一则网络流传“新闻”的一部分。最近几天国内某些论坛上盛传一个猛料,称“沙特将订购12艘052D”“三周内就会达成协议”。我用疑似P图中的标题百度了一下,结果如下——

我依次查看了这些链接,发现几乎全部来自于自媒体,没有一个是门户网站自己的新闻,更不用说来自正规媒体的消息。比如最下面这条标注“网易”的消息,点开发现只是来自“网易号”,也就是自媒体,并不是网易新闻——

而且所有这些消息内容基本相同,其引用的所谓消息来源仅仅推特上的两个id,一个是个人,一个是野鸡媒体。如果有这样重磅的“猛料”,为何没有一个国内外主要媒体(无论平面还是网络)进行报道呢?既然不到报道,为何又要故意P一张美防长的“新闻”呢?

右边这个id有点意思,看头像和推文似乎是个沙特人,其实只要一搜就会发现这个id现在长这样——

这是一个注册不满一个月的水军号吗?而且刚搜到这个号的时候推特还会提示你,这个号“有异常活动”“暂时受限”。

关于沙特是不是真的要买052D,在没有更多正规渠道的消息之前,我也不能说它一定就是假新闻。但是,如果所谓的“信源”只是上面这些货色的话,那我倒是很可以怀疑,这很可能就是假新闻。那么它是借助ChatGPT制造出来钓鱼的吗?

十几年前,我在这里也写过一篇关于钓鱼党的博文,我在文中说到过——

我们知道维基百科完全是一个“由非专业机构组织的,由大量非专业人员参与编写的一个非专业知识平台”,这样一个平台没有权威的专业人士和机构对其各种词条进行严格审核,也没有任何个人或机构能对所编写的内容负责,其结果完全取决于编写人的个人良心、知识水平、观点立场等等等等,编辑结果又是立即可见的,那么这个效果与我们用google或百度这样的通用网络搜索引擎所搜出来的结果有多大的差别,是很值得怀疑的。

这些年来涌现了很多技术和产品,比如维基百科,强调人人参与和知识共享;比如区块链,强调“去中心化”理念;比如ChatGPT,需要接受海量训练。但是如何确保在输入端,使用者是“主观善意”的呢?谁又有资格作为“善意还是恶意”的裁决人呢?

时过境迁,新一代的人们有了ChatGPT这个工具,想要造假钓鱼的话,简直是太太太方便了……20年前的wiki涂鸦党,10年前的钓鱼党,今天应该叫什么呢?ChatGPT调教党吗?所以,当我们欢呼人工智能“革命”来临的同时,是不是也要考虑一下调教它的那个主人的动机呢?我可不希望看到,当我还没有完全体验到ChatGPT的便利的时候,就已经被泛滥的ChatGPT假新闻所困扰。

发表在 ☼ 随笔感言♬ | 标签为 , , | 留下评论

树莓派升级

距离上次小型NAS的搭建,已经过去有四年半。伴随中美贸易战而来的是IT业界罕见的“芯片荒”,导致下游产品价格一路上涨,而树莓派可以说是受到影响最大的终端消费产品之一了吧?因为主板价格在两三年之内就翻了两三倍之多,尽管比常规的PC主板还是便宜得多,但在当前世界经济形势下,已经很难说是像过去那样标榜的是“面向穷人家孩子的主板”了。

手里这块树莓派三代也陪伴了我四年半,虽然暂停了syncthing自动同步,但即使手工备份也在日常生活中帮了我不少忙。这块三代板最大的遗憾就是USB 2.0接口,对于大容量的同步来说,写入速率实在是相当尴尬。在今年的618期间我决心要升级一下我的树莓派了,不过树莓派四代裸板的价格如今至少是一千RMB以上,是当年入手的三代的三倍多,但是冲着两个USB 3.0口和一个千兆有线网口,还是值得升一升的,毕竟五代还不知道什么时候上市。

在升级树莓派之前我先升级了一下局域网,换了全千兆加MESH的路由器和六类网线,起码对于无线设备来说,在MESH和WIFI6加持下的体验提升还是比较明显的。新买的树莓派4B,SD卡刷的是官方64位img,与三代我刷的OS镜像不同,64位镜像是从debian拉出来的,而不是像之前32位有单独的raspbian镜像。

ARM 64位版Debian 11 bullseye
新旧树莓派合影:左边白色壳的是三代,右边金属壳的是四代

装好必要软件包,配好samba,测试一下通过网络拷贝的速率,结果还不错,四代USB 3.0的写入速率大约是三代USB 2.0的五倍左右,这是平均水准。

然后装了一下syncthing,虽然比三代板上的结果要好看一些,但依然没有达到我所期望的最低目标。首先是全路径扫描耗时很长,如果只是初次扫描倒还可以接受,可是每次启动syncthing都会进行扫描,虽说首次扫描会建立庞大的索引数据库,以后的扫描会更快,但是对于以TB计的大目录来说,可能仍会花费数个小时的时间。

然后是同步的速率,峰值在10M以下,通常是几M到几百K之间,这对于TB量级的数据同步还是太难看了,何况我内网还升级到千兆网了呢。

syncthing的典型同步速率。这是接收端,所以只有第一行的数字有意义,对应于发送端的第二行

Syncthing官方的说法,瓶颈在于CPU的速度:

Syncthing官方解释说,这主要是由于文件的加解密、散列、压缩解压都需要消耗CPU的计算资源。当需要维持两台或多台终端间TB量级的数据同步,初次扫描和同步的开销还是很高的。

不过官方又安慰了一句,当两端/多端完成了同步,CPU负载就会降下来。

从我目前的使用体验来看,树莓派上的CPU开销确实是相当高

树莓派4B上显示的CPU负载和温度

我看在自己用的Windows PC端,CPU负载显然就不算高了

主PC上的CPU负载

虽说我还用着十几年前的i7-2600K,但比起作为ARM开发板的树莓派那还是强劲得多。可见官方说法还是有道理的。

结果评价

扫描耗时:在树莓派4B上开启syncthing服务,扫描约用5天时间,中间为避免过热有暂停关机;在Windows 10上开启syncthing服务,扫描约少于2天时间,中间有暂停关机。

同步耗时:在双机开始同步之后,花了约2天完成同步,中间也有暂停关机。

同步效果:Windows主机是发送端,不接受外来修改;树莓派作为接收端,无条件接受发送端的任何修改。结果我发现树莓派的USB 3.0外挂NAS盘的空闲容量有肉眼可见的下降,粗略估算损失大约100G左右,而之前我是大部分有手工同步的。打开NAS盘检查,确有大量xxx.sync-conflict-xxxx-xxxx-xxxx文件存在。并且,我在主机端删除的某些文件,并没有同步到NAS盘上,也删除相应文件。

结论:经过多年的多次试验,证明使用树莓派外挂USB硬盘,并通过syncthing进行同步的NAS方式,并不是一个好的方案,对于TB级的海量数据同步,效率很低,而且可靠性也不佳。看来家庭NAS还是得走群晖路线啊。

发表在 ☞菜鸟的UNIX观☜ | 标签为 , , , | 一条评论

【沿革史图解】《年表·沿革史图解》小程序更新至0.0.2版

微信小程序《年表·沿革史图解》带来0.0.2版更新。

这是一个小版本的更新,主要就是带来了支持双指滑动缩放的功能,兰鹅……体验并不好,因为是大图片一次性加载的渲染方式,缩放过程是有明显迟滞感的,不过试验性作品目前也就只能做到这样了,包涵包涵 _(:з」∠)_

滑动到全图靠右位置点放大出现定位错误的bug仍然没有修复,我尝试过,兰鹅……卡在了一个微信小程序官方的bug上,那以后再说吧。

请打开微信,搜索“年表”即可找到本小程序。或者扫描下方的二维码或小程序码,也可直接打开。

发表在 ↗沿革史图解↘ | 标签为 , , , , , , | 一条评论

【沿革史图解】《年表·沿革史图解》小程序上线!

业余时间做了这样一个微信小程序,目前是0.0.1版,还比较粗糙。打开微信在小程序界面搜索“年表”即可——

从微信小程序界面搜索“年表”

使用方法很简单,在小程序中点击“关于沿革史图解”,内中有说明,在此就不赘述了。需要注意的是,我还没有找到将图片先下载到设备,然后从本地读取图片的合适方法,这一版每次打开“中国工农红军部队沿革路线图”都会去从远程CDN上读取图片,我不太确定微信小程序是否有缓存机制——印象中似乎是小程序在打开,或者退出再打开不超过一个时间窗口(大约3分钟?)的话,这时候图片是有缓存的,一旦退出小程序超过一定时间再打开,这时候就要重新从远程下载图片——而本小程序所使用的功能图片都比较大(“中国工农红军部队沿革路线图”大约有2.3M),首次载入图片也要稍微花点时间,因此手机流量党如果介意的话,请慎用本小程序

本小程序技术含量不高,仅仅是把之前画的SVG图片包了个小程序界面的外壳,稍微加了点快捷功能而已,试用过的同学反映像这样大一张图片在手机上看其实并不是很方便,需要手指滑动很长一段距离才找到对应位置。然而目前使用的静态图片本身就是有这么大的篇幅,太小就无法在手机上看清楚字了,所以我在初版上才添加了缩放年份/部队快捷定位的功能,希望能够帮助到用户,略微减轻一下使用的不便。以后我会考虑怎么做手指的动态缩放。另一方面微信小程序本身是有web-view的,但是却不开放给个人开发者使用,所以我无法使用浏览器加载SVG的方式,只能作为普通图片加载,这样就无法利用到浏览器页面搜索的功能,这也是一大遗憾。

工具粗糙,如果能给喜爱研究历史的朋友带来一些帮助的话,那也是很开心的,欢迎给我的小程序点个赞 ^_^

发表在 ↗沿革史图解↘ | 标签为 , , , , , , | 一条评论

【沿革史图解】哪一支才是真·红十二军?

preview

在我原来的答帖中曾经提到过

红一军团的红十二军,源自闽西地方武装

此处的提法有误,或者说并不准确。因此本博客在先前转载答帖的节选文章里我已经修改了此项表述。

一军团的红十二军的来源应该是井冈山红四军的一部;而闽西的老十二军则分成两部分:其中主力则编入了红四军,而一部后来成为闽西的新十二军的一部分。而这个闽西新十二军呢,在1931年9月缩编成了一军团十二军的第三十四师(不是长征初期在湘江战役中损失的那个红三十四师),而一军团十二军原来那个三十四师给了红四军组建十二师,至此红一方面军的老十二军基本成型。

一军团十二军在1932年2月“重新”转隶闽西军区,直到年底才又“归还”给红一方面军。但是在这期间,这支“老十二军”身份又经历了一次转换:在10月份的时候把包括十二军军部在内的一部分拆走拿去组建红二十二军了,这之后闽西军区又重新组建了红十二军的军部。因此,在1932年底回归红一方面军的那个红十二军,应当可以称为红一方面军的新十二军了。

红十二军的这段曲折的沿革历史,跟鄂豫皖红二十五军的演变历史相比,烧脑程度可谓不相伯仲,非常容易搞晕,在看军史的时候你需要非常清楚正在描述的时间点,才知道确切对应到哪一支部队。

综上,这四支红十二军的沿革简图大致可以如下描述:

发表在 ↗沿革史图解↘, ۩历史园地摘录۩ | 标签为 , , , , , | 一条评论

【沿革史图解】关于“三次整编”

preview

关于“三次/四次整编”,再稍微多聊那么两句。

这其中,又以前两次整编较为重要,特别是第二次整编,大致上决定了从此以后红一系部队的主要基干。可以这么说,后世的红一系部队的血脉,基本上都可以追溯到第二次整编。

“第二次整编”:红一方面军各主力师的来源

举个栗子,我们简略研究一下后期的红一军团——

来源:《中国工农红军第一方面军史·附册》,解放军出版社,1991
来源同上

在红一方面军一部长征到达陕北和红十五军团会合,重组方面军,陕甘支队又恢复了红一军团的番号,请问:

此时的红一军团及其所属部队分别继承了哪些部队?

这是在1936年2月红一方面军东征前,第三次恢复番号的红一下属的一军团,此时剩下的三个骨干师各有来源:刚到陕北恢复番号时候的红一军团仅辖红二师和红四师(以及军团直辖的1团和13团),红一师是临近东征前夕才重建的(由1团和13团,以及新编的3团)。那么请问,这三个主力师谁的“资格老”?并非番号排在最靠前的红一师,而是红二师。因为红二师继承自井冈山红四军,即“朱毛红军”。这是为何?这就要追溯到上述的“第二次整编”:第二次整编的最重要变化就是所谓“军改师”,撤销了军一级编制,而各主力师基本按“三三制”编成,正规化程度进一步提高。这次军改师,师的番号排序也大致参照之前红一各军的次序,红一军团辖两个师(一师和二师,三师是新编的调到方面军直属),红三军团辖三个师(四、五、六师),红五军团三个师(十三、十五、三十四师)这些师的基干分别来自于之前的一军团的红三军和红四军,三军团的红五军和红七军,以及五军团的红十三军和红十五军。其中非新编的,基本来自原来各军的有:

红一军团:

  • 红一师:基干来自原红三军,即原黄公略领导的赣西红六军
  • 红二师:基干来自原红四军,即井冈山红四军,也就是“朱毛红军”。

(方面军直属的红三师由瑞金师等新编而成)

红三军团:

  • 红四师:基干来自原红五军,即平江起义形成那个红五军(主力由彭德怀带上了井冈山),以及从她分出去的湘鄂赣红八军
  • 红五师:基干来自原红七军,即百色起义形成的左右江红七军

(红六师由兴国师为核心新编而成)

红五军团:

  • 红十三师:基干来自红十三军红十五军,即宁都起义的第二十六路军的老底子。

(红十五师即著名的“少共国际师”,由江西省赤少队等新编;红三十四师即湘江战役损失的那支后卫部队,从福建军区的红十九军演变而来,属闽西地方系统。这两个师的基干都不是从红一的老部队来的)

至于后来的红七、八、九军团,都是中革军委在“扩红”时期急速扩编的,有一小部分老红一的底子,但多数是从地方部队(如各军区所辖独立师)抽调编成。

红一长征与红四在懋功会师,第二次恢复方面军番号,取消军团并恢复军,而后一军和三军跟随中央机关到了陕北,再次恢复军团番号,此后红三军团就完全并入了红一军团。

因此对于前面的提问“(东征前夕)红一军团及其所属部队分别继承了哪些部队?”,我们大致上(未必非常精确地)可以这样回答:

  • 此时的红一军团来自原来的红一军团和红三军团;
  • 新建的红一师部分地继承了原来红一军团的老红一师(即其中的第一团,来自赣西红六军);
  • 红二师主体(除了第二团)仍然继承了原来红一军团的老红二师(即井冈山红四军);
  • 红四师继承了原来红三军团的老红四师(即平江起义红五军)。

简化版的沿革路径是:

湘赣边和赣西地方武装 → 赣西红六军 → 红一军团红三军 → 红一方面军红一军团红一师

南昌起义部队+秋收起义部队+湘南农军+井冈山武装 → 井冈山红四军 → 红一军团红四军 → 红一方面军红一军团红二师

平江起义部队 → 红五军(含湘鄂赣红八军) → 红三军团红五军&红八军 → 红一方面军红三军团红四师

这样一条演变脉络将会在我的完整版路线图中看得更加清晰 ^_^

发表在 ↗沿革史图解↘, ۩历史园地摘录۩ | 标签为 , , , , , | 一条评论