我平常就事用一台运行Ubuntu 18.04系统的台式电脑来打理博客,但当我出差时,就不是很方便了。所以几年前我买了一台宏基Aspire E5-421G笔记本电脑,它搭载的是AMD A4-6210处理器、4GB内存、512GB硬盘和14英寸显示屏。我在笔记本电脑上安装了Ubuntu系统后它就是开始正常工作了,不过由于它配置的是4GB RAM,一旦我处理多项任务时它就显得有点不够用了。比如,我可以在上面运行Thunderbird和Firefox,但如果我打Skype电话,系统就无法使用,这导致我就不得不关闭其中一个程序。而且,在这台电脑上做编辑视频类的工作它也运行得相当缓慢。
由于不久之后我又要出差,所以我决定换一台新的笔记本电脑。配置要求是8GB RAM、支持SSD和HDD、15英寸显示屏、能够运行Ubuntu 18.04系统,可能还要有一个性能接近我的台式电脑的AMD FX8350处理器。电脑预算大约在20,000泰铢左右(约600美元)。网上进行了搜索后,我又找到了一台符合我上述所有需求的宏基笔记本电脑。那就是宏基Aspire 3 A315-41G (-R468)、搭载的是AMD Ryzen 7 2700U四核/八线程处理器(15W TDP)、8GB DDR4、1TB HDD和15.6英寸的全高清显示屏(亚马逊)。那么,M.2 SSD在哪里呢?我看过的一个视频介绍,得知它应该是在RAM隔间的右侧。
之后,我去了当地的商店,并找到了该型号的电脑,价格是20,990泰铢(约632美元)。跟我预想的相差不大,一切还都不错。
直到我咨询店主想要确认一下在主板上是否有一个M.2 SSD插座,他的回答是 “不,只有英特尔CPU的笔记本电脑有该配置,AMD CPU的电脑上是没有的”。在我给他看了YouTube的视频后,他和同事通过RAM隔间查看,最终真的找到了我想要的那个配置。所以最后,我就是把这台笔记本买下来了。

商家赠送了一套10合1礼盒,里面有一些没什么用的物品,此外还送了一个USB鼠标和一个Predator牌电脑包。
我启动笔记本电脑时,可以看到它正在运行 Linpus Linux (精简版),就像我以前的宏基笔记本电脑一样,这让我相信Ubuntu系统可以开机启动。Linpus Linux Lite是一种“类似于Linux的FreeDOS”的系统,因为操作系统只有指令行,宏基就将该系统装在没有Windows的笔记本电脑上进行销售。

我可以通过在开机启动时按下F2键进入BIOS,从而来仔细查看硬件的配置。

InsydeH20设置工具检查显示,AMD Ryzen 7 2700U搭载的是Radeon Vega Mobile Gfx,一个东芝硬盘和8192MB物理内存。

BIOS并未显示很多配置信息选项。
我们先从整体上一起来看看笔记本电脑,他的左侧带有一个防盗锁插孔、一个以太网端口、一个HDMI端口、一个USB 3.0端口和一个SD插槽。

右侧包括一个3.5毫米耳机插孔、两个USB端口、几个LED和电源插孔。

笔记本电脑的底部也挺有趣的,有一个2.5英寸的SATA驱动器托架、一个RAM隔间,以及一个用于安装M.2 2280 SATA SSD的插座,但不容易接触到。上面我说的那个视频也提到过要卸下所有螺丝才能取下盖板。只有一个小问题,那就是:我在泰国,是没有像美国 FCC 那样禁止使用“保修免责贴纸”的法律规定,因此如果贴纸损坏,我就失去笔记本电脑2年的保修服务了。

只需取下用户可维修的底盖,我们就可以看到1TB硬盘和两个内存条。 M.2插座在右边,而保修免责贴纸要靠左边一点,所以我把贴纸右边的螺丝和左边的几颗螺丝卸下,试试看是否能用这种方式安装M.2固态硬盘。

上面的图是盖板能够安全掀开的最大限度了,可以肯定主板上确实有一个M.2插座。但要插入SSD其实并不容易,而最后一步用螺丝固定则更具挑战性了。所以我决定暂时不在笔记本电脑上安装SSD,而是选择安装M.2 SSD,将来如果我对性能感到不满意,可能就会选择直接放弃保修服务,直接安装SSD了。不管怎么说,让主板配备一个客户很难接触到的M.2 SSD 插槽,这样的做法是挺疯狂的!
是时候安装Ubuntu 18.04.1系统了。下载ISO、并将其存储在USB Disk Creator闪存驱动器(金士顿DataTraveler)上,插入笔记本电脑的USB 3.0端口,进入BIOS设置,系统自动正确检测为启动设备,显示系统首先从USB驱动器启动。

退出BIOS后,几秒钟就进入系统安装菜单了,系统要求我尝试安装Ubuntu。我点击了“安装Ubuntu”,屏幕黑屏了一会儿,然后屏幕上又迅速闪现出了“ACPI Error”、“Firmware Bug”和类似于“BUG: soft lockup – CPU#0 stuck for 22s!”等几条信息。

看起来似乎不太好。首先,我尝试将USB驱动器移动到USB 2.0端口来解决。运气不太好,没啥效果。然后我进入了BIOS的“高级设置”选项,禁用AMD-SVM和AMD-IOMMU,这样可以看到与后者有关的一些信息。

但是这仍不起作用,顺便说一下,上面的SATA配置同时显示了SATA0和SATA1接口,于是我就很希望2.5寸SATA和M.2 SATA硬盘都能使用。
后来我又注意到BIOS是早期版本(2017 年),所以我又到笔记本电脑支持的网页寻找更新版本。确实,BIOS 1.08版(2018 年 5 月)的就可用了,因为我的笔记本电脑之前运行都还是1.03版本的,这确实太旧了。

于是我点击下载,但下载好后才发现是一个运行在 Windows系统上的EXE格式文件。不错,在网上搜索了一些信息后,结果更令人沮丧,因为宏基指出了要安装Windows系统才能升级BIOS,这一点也让人很抓狂。没办法,进行不下去了,我只能去准备了一张Windows 10系统启动CD,安装了Windows,下载并安装BIOS程序,然后运行。

将系统重新启动以执行更新,一切都很顺利,现在笔记本电脑上安装的是BIOS v1.08版。

很好,将Windows 10系统从U盘删除,然后重新闪存Ubuntu 18.04 ISO。遗憾的是又回到了原点,因为“ACPI errors”又出现了。
我注意到其他一些人在使用AMD Ryzen处理器时也遇到了问题,他们使用的是更新的Linux 4.17版。因此,我尝试使用主线内核重新启动Ubuntu 18.04,但不知什么原因,镜像根本无法启动,BIOS也未能检测到启动镜像。
我对网上的信息进行了再次搜索,发现了两处错误报告:链接1和链接2,在搭载AMD Ryzen 5/7的宏基笔记本电脑上很多人都遇到了类似的麻烦。看起来可能是BIOS的问题了,大家都在尝试用各种内核参数来解决这个问题。

我找到的解决办法是在程序安装时,在“安装Ubuntu”突出显示时按下 “e”键,从而便编辑参数,我修改了linux行,在最后加上 “pci=noacpi”。如上图所示,第一次尝试使用 “acpi=off”,并没有成功。然后我按下F10键,用修改的参数启动,就能够顺利安装Ubuntu了。这时触摸板不能使用,但我后来发现,必须按F7键来启用触摸板。

我对笔记本电脑的所有主要功能进行了测试:
- 1920×1080显示– 成功
- HDMI输出–成功(扩展显示可用)
- USB 2.0端口–成功
- USB 3.0端口–成功(使用USB 3.0 HDD,测试读写速度约为100MB/s)
- 千兆以太网和802.11ac Wi-Fi –成功
- 蓝牙–成功(使用蓝牙耳机测试)
- 键盘–成功
- 触摸板–成功(仅测试“基本”模式)
- 网络摄像头、扬声器和音频插孔– 成功
- SD卡–失败[更新:后来又使用Ubuntu 18.04.3和Linux 5.0.0系统测试了一下,就成功了。]
下面是在插入SD卡时显示的错误信息。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 |
[22614.698950] mmc0: cannot verify signal voltage switch [22614.699457] mmc0: Skipping voltage switch [22615.321724] mmc0: error -110 whilst initialising SD card [22714.978965] mmc0: cannot verify signal voltage switch [22715.417849] mmc0: error -110 whilst initialising SD card [22732.345118] mmc0: card never left busy state [22732.345126] mmc0: error -110 whilst initialising SD card [22732.760465] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: card claims to support voltages below defined range [22732.760468] rtsx_pci_sdmmc rtsx_pci_sdmmc.0: no support for card's volts [22732.760470] mmc0: error -22 whilst initialising SDIO card [22735.029015] mmc0: card never left busy state [22735.029024] mmc0: error -110 whilst initialising SD card [22736.050138] mmc0: cannot verify signal voltage switch [22736.484982] mmc0: error -110 whilst initialising SD card |
目前为止,我还没有检查过电池使用的时间,这也是禁用ACPI会带来的一个潜在问题。因为我是在有WiFi和电源插座的房间工作,电池使用时间其实我并不是很在意。作为参考,在充满电后,Ubuntu会在断开电源时显示还可以运行2小时7分钟。如果是这样的话,该电脑的电池使用市场还挺差的。一旦对电池做了更多测试,我也会在评论区部分告诉给大家。
大家要注意的是,屏幕亮度在开机时被设置为最低,触摸板在开机/重启后被设为禁用,这意味着需要使用触摸板时必须要按F7键。
下面是一些系统信息细节,给感兴趣的人用来参考。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
jaufranc@cnx-laptop-4:~$ inxi -Fc0 System: Host: cnx-laptop-4 Kernel: 4.15.0-32-generic x86_64 bits: 64 Console: tty 1 Distro: Ubuntu 18.04.1 LTS Machine: Device: laptop System: Acer product: Aspire A315-41G v: V1.08 serial: N/A Mobo: RR model: Metapod_RR v: V1.08 serial: N/A UEFI: Insyde v: V1.08 date: 05/23/2018 Battery BAT1: charge: 34.6 Wh 100.0% condition: 34.6/36.7 Wh (94%) CPU: Quad core AMD Ryzen 7 2700U with Radeon Vega Mobile Gfx (-MT-MCP-) cache: 2048 KB clock speeds: max: 2200 MHz 1: 1969 MHz 2: 2294 MHz 3: 2211 MHz 4: 1471 MHz 5: 1623 MHz 6: 1561 MHz 7: 1573 MHz 8: 1535 MHz Graphics: Card-1: Advanced Micro Devices [AMD/ATI] Topaz XT [Radeon R7 M260/M265 / M340/M360 / M440/M445] Card-2: Advanced Micro Devices [AMD/ATI] Vega [Radeon Vega 8 Mobile] Display Server: N/A drivers: amdgpu,amdgpu tty size: 80x24 Advanced Data: N/A out of X Audio: Card-1 Advanced Micro Devices [AMD] Device 15e3 driver: snd_hda_intel Card-2 Advanced Micro Devices [AMD/ATI] Device 15de driver: snd_hda_intel Sound: Advanced Linux Sound Architecture v: k4.15.0-32-generic Network: Card-1: Realtek RTL8111/8168/8411 PCIE Gigabit Ethernet Controller driver: r8169 IF: enp2s0f1 state: up speed: 1000 Mbps duplex: full mac: 98:28:a6:0f:06:07 Card-2: Qualcomm Atheros QCA9377 802.11ac Wireless Network Adapter driver: ath10k_pci IF: wlp3s0 state: up mac: 70:c9:4e:b7:84:77 Drives: HDD Total Size: 2000.4GB (29.4% used) ID-1: /dev/sda model: TOSHIBA_MQ04ABF1 size: 1000.2GB ID-2: USB /dev/sdb model: Expansion size: 1000.2GB Partition: ID-1: / size: 916G used: 12G (2%) fs: ext4 dev: /dev/sda2 RAID: No RAID devices: /proc/mdstat, md_mod kernel module present Sensors: System Temperatures: cpu: 59.4C mobo: N/A gpu: 50.0,0.0 Fan Speeds (in rpm): cpu: N/A Info: Processes: 365 Uptime: 6:23 Memory: 3276.9/6931.1MB Init: systemd runlevel: 5 Client: Shell (bash) inxi: 2.3.56 |
还需要注意的是,在dmesg中可以看到几个与DRM(GPU)驱动有关的警告。但从用户的角度来看,并没有任何负面作用。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
[20251.984207] [drm:generic_reg_wait [amdgpu]] *ERROR* REG_WAIT timeout 1us * 100 tries - tgn10_lock line:566 [20251.984319] WARNING: CPU: 4 PID: 1522 at /build/linux-wuhukg/linux-4.15.0/drivers/gpu/drm/amd/amdgpu/../display/dc/dc_helper.c:190 generic_reg_wait+0xe8/0x120 [amdgpu] [20251.984320] Modules linked in: binfmt_misc rfcomm ccm cmac bnep nls_iso8859_1 arc4 snd_hda_codec_realtek snd_hda_codec_generic snd_hda_codec_hdmi snd_hda_intel snd_hda_codec uvcvideo videobuf2_vmalloc videobuf2_memops videobuf2_v4l2 videobuf2_core snd_hda_core edac_mce_amd btusb snd_hwdep ath10k_pci ath10k_core videodev kvm_amd media snd_pcm btrtl ath btbcm btintel snd_seq_midi snd_seq_midi_event kvm acer_wmi mac80211 bluetooth snd_rawmidi irqbypass crct10dif_pclmul snd_seq snd_seq_device snd_timer crc32_pclmul cfg80211 sparse_keymap rtsx_pci_ms ghash_clmulni_intel joydev input_leds snd pcbc ecdh_generic memstick serio_raw aesni_intel soundcore k10temp shpchp mac_hid aes_x86_64 crypto_simd glue_helper cryptd tpm_crb wmi_bmof sch_fq_codel parport_pc ppdev lp parport ip_tables x_tables autofs4 amdkfd [20251.984370] amd_iommu_v2 amdgpu rtsx_pci_sdmmc chash i2c_algo_bit ttm drm_kms_helper psmouse ahci syscopyarea r8169 rtsx_pci sysfillrect sysimgblt mii fb_sys_fops libahci i2c_piix4 drm video wmi [20251.984390] CPU: 4 PID: 1522 Comm: Xorg Tainted: G W 4.15.0-32-generic #35-Ubuntu [20251.984392] Hardware name: Acer Aspire A315-41G/Metapod_RR, BIOS V1.08 05/23/2018 [20251.984456] RIP: 0010:generic_reg_wait+0xe8/0x120 [amdgpu] [20251.984458] RSP: 0018:ffffb4be427cb7d8 EFLAGS: 00010297 [20251.984461] RAX: 0000000000000001 RBX: 0000000000000065 RCX: 0000000000000000 [20251.984463] RDX: 0000000000000000 RSI: ffff980a0ed16498 RDI: ffff980a0ed16498 [20251.984464] RBP: ffffb4be427cb818 R08: 0000000000000000 R09: 0000000000000752 [20251.984466] R10: 0000000000000002 R11: ffffffffad55380d R12: 0000000000000001 [20251.984467] R13: ffff980a06756080 R14: 0000000000000100 R15: 0000000000000001 [20251.984470] FS: 00007f23be766600(0000) GS:ffff980a0ed00000(0000) knlGS:0000000000000000 [20251.984472] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [20251.984473] CR2: 00007fadb22d6000 CR3: 0000000242270000 CR4: 00000000003406e0 [20251.984475] Call Trace: [20251.984548] tgn10_lock+0xa2/0xb0 [amdgpu] [20251.984614] program_all_pipe_in_tree+0x804/0x8b0 [amdgpu] [20251.984620] ? free_one_page+0x76/0x400 [20251.984684] ? amdgpu_cgs_read_register+0x14/0x20 [amdgpu] [20251.984748] dcn10_apply_ctx_for_surface+0x498/0x4f0 [amdgpu] [20251.984810] dc_commit_state+0x2aa/0x500 [amdgpu] [20251.984880] amdgpu_dm_atomic_commit_tail+0x2cd/0xa50 [amdgpu] [20251.984926] ? amdgpu_bo_pin_restricted+0x1b5/0x2a0 [amdgpu] [20251.984932] ? _cond_resched+0x19/0x40 [20251.984934] ? wait_for_completion_interruptible+0x35/0x180 [20251.984946] commit_tail+0x42/0x70 [drm_kms_helper] [20251.984955] drm_atomic_helper_commit+0x10c/0x120 [drm_kms_helper] [20251.985020] amdgpu_dm_atomic_commit+0x87/0xa0 [amdgpu] [20251.985041] drm_atomic_commit+0x51/0x60 [drm] [20251.985050] drm_atomic_helper_set_config+0x7c/0x90 [drm_kms_helper] [20251.985067] __drm_mode_set_config_internal+0x6b/0x120 [drm] [20251.985083] drm_mode_setcrtc+0x47f/0x660 [drm] [20251.985100] ? drm_mode_getcrtc+0x190/0x190 [drm] [20251.985114] drm_ioctl_kernel+0x5f/0xb0 [drm] [20251.985128] drm_ioctl+0x31b/0x3d0 [drm] [20251.985143] ? drm_mode_getcrtc+0x190/0x190 [drm] [20251.985187] amdgpu_drm_ioctl+0x4f/0x90 [amdgpu] [20251.985194] do_vfs_ioctl+0xa8/0x630 [20251.985197] ? vfs_read+0x115/0x130 [20251.985201] SyS_ioctl+0x79/0x90 [20251.985205] do_syscall_64+0x73/0x130 [20251.985209] entry_SYSCALL_64_after_hwframe+0x3d/0xa2 [20251.985211] RIP: 0033:0x7f23bbb5b5d7 [20251.985213] RSP: 002b:00007ffe9f3414b8 EFLAGS: 00000246 ORIG_RAX: 0000000000000010 [20251.985216] RAX: ffffffffffffffda RBX: 00007ffe9f3414f0 RCX: 00007f23bbb5b5d7 [20251.985217] RDX: 00007ffe9f3414f0 RSI: 00000000c06864a2 RDI: 000000000000000e [20251.985218] RBP: 00007ffe9f3414f0 R08: 0000000000000000 R09: 000056019dbefee0 [20251.985220] R10: 00007ffe9f3415b0 R11: 0000000000000246 R12: 00000000c06864a2 [20251.985221] R13: 000000000000000e R14: 0000000000000000 R15: 000056019dbefee0 [20251.985223] Code: 31 f6 44 8b 45 10 44 89 e1 48 c7 c7 64 38 4e c0 89 45 d4 52 48 c7 c2 a8 be 4d c0 e8 e3 5c d7 ff 41 83 7d 20 01 58 8b 45 d4 74 02 <0f> 0b 48 8d 65 d8 5b 41 5c 41 5d 41 5e 41 5f 5d c3 c7 45 c4 23 [20251.985271] ---[ end trace 7621a5a490da2216 ]--- [20251.985434] [drm] DC: Cursor address is 0! [20251.986493] [drm] DC: Cursor address is 0! [20251.987410] [drm] {1920x1080, 2250x1132@152840Khz} [20251.996250] [drm] HBRx2 pass VS=1, PE=0 |
最后,在Firefox上运行Octane 2.0,以比较搭载AMD FX8350的台式和搭载Ryzen 7的宏基Aspire 3 A315-41G笔记本电脑性能上的区别。


除了一项性能外,笔记本电脑在所有基准测试中都击败了我的台式电脑。AMD Ryzen 7 2700U曾被期望是具有更好的单核性能,但由于在AMD FX8350上搭载的是4C/8T 而不是8C/8T,因此高度并行的工作负载在旧台式电脑的CPU上运行速度可能会稍快一些。
让这台笔记本电脑正常使用的过程还是有点艰难的,但到目前为止,我对结果还算满意,即使一切都不算完美。现在我还没有安装M.2固态硬盘,而且SD读卡器貌似也不能使用。这些问题就暂时不考虑了,但在ACPI问题得到解决之前,电池寿命的确是是一个问题。

文章翻译者:Rita Wang,CNX中文站翻译人员,文字功底扎实,将科技文献以通俗易懂的形式呈现给读者,对开源硬件、AI、IoT等领域多有涉猎。