许多指南和讨论有时会更新,因此很难跟上。
我在我的笔记本电脑上安装了两次,并想分享在这台笔记本电脑上安装 Ubuntu 16.04(或其某个版本 - 在我的情况下是 Lubuntu 16.04)的最新方法。
答案1
我从一篇帖子中找到了答案线自 2014 年以来,针对多种 Linux 版本一直在讨论这个问题。我将分享不使用指南中的可选部分进行安装的方法。
仍然无法解决的问题
- Chrome 浏览器闪烁/撕裂(关闭 Chrome 设置中的硬件加速即可避免此问题)
- 通过 FN 按钮控制亮度
- 声音可以工作,但目前还不能在主线内核中使用。它可能会以 4.11 或更高版本进入主线。(可以选择编译更高级的内核,但我没有这样做。)
- 即使使用补丁,耳机中的声音也无法正常工作,但您可以使用这解决方法让它工作(我没有尝试过)。
在 Windows 中准备
如果从 Windows 启动:关闭 BitLocker(这将允许 Ubuntu 安装和/或调整主数据驱动器的大小)。在 Windows 中,单击 PC 设置/PC 和设备/PC 信息;滚动到屏幕底部,然后单击关闭 BitLocker/解密驱动器
准备 USB Live
更新:制作可启动的 USB 盘也可以通过以下方式实现harryharryharry的剧本
否则:
准备 Ubuntu Live 可启动 USB 记忆棒。下载 64 位 Ubuntu 16.04 的 .iso 文件。在 Linux 中,使用下载的 .isosudo apt-get install unetbootin
运行。unetbootin
将特殊的 bootia32.efi 复制到 USB 上
记忆棒设置完成后,复制bootia32.efi
到/EFI/BOOT
记忆棒上的目录。bootia32.efi
从中获取github。我不确定这是否是正确的链接,因为我忘记了安装时使用了哪一个。如果有人遇到问题,请发表评论,我会更新。网上有几个这样的文件或如何创建它们的指南,尽管我首先获取了一个不起作用的文件(它适用于 Arch Linux)。
从 USB 启动 Ubuntu Live
将记忆棒插入华硕 X205TA USB 端口。在 Windows 中,按住Shift键并单击“重新启动”;选择“高级选项/UEFI 固件”进入 BIOS。关闭 SecureBoot。选择 USB 棒作为启动设备。保存并退出
如果从现有的 Linux 安装开始,则需要ESC在首次打开机器时按下;这将拉出一个小菜单来选择启动设备。选择 USB 棒。当 grub 菜单加载时,选择尝试 Ubuntu。
SSHD 备份
插入具有至少 32GB 可用空间的 USB 外部硬盘或 USB 拇指驱动器。右键单击 Unity 启动器中任何已安装的驱动器(例如,如果与 Windows 进行双启动,则单击 OS 和 Recovery),然后为每个驱动器选择卸载。打开终端并运行以下命令:
dd if=/dev/mmcblk0 of=/media/ubuntu/HD/FILENAME bs=1M`
将 HD 替换为安装外部驱动器的名称。替换FILENAME
为您希望用于生成图像的文件名(或根据需要设置其他路径)。该命令大约需要 20 分钟才能完成;请勿中断它,否则您将不得不重新开始!注意:要将 X205TA 恢复到其原始状态,您可以“反向”运行此命令:dd if=/media/ubuntu/HD/FILENAME of=/dev/mmcblk0 bs=1M
双启动
调整恢复分区的大小(请注意,恢复分区是启动此计算机上的 Windows 所必需的,因此如果您想要双启动,则无法将其删除,但可以缩小它的大小以留出一些额外的空间)。右键单击 Unity 启动器中的操作系统和恢复图标,并确保每个图标都已卸载(如果需要,请选择每个图标的卸载)。运行 gparted(注意:此时运行速度非常慢;请耐心等待!)。将恢复分区缩小到尽可能小(略小于 6 GB)。扩展操作系统分区以占用额外的空间。
从 Live-USB-Stick 安装
重新启动进入 Live-USB。
设置无线连接
这是在安装过程中下载更新所必需的。插入基于 USB 的 wifi 适配器(Ubuntu 尚无法识别内部 wifi)。选择无线连接并连接。
双击“安装 Ubuntu”。等待安装完成
重启。它应该完美运行,并且grub-efi-ia32
已安装(而不是grub-efi-amd64
)。
完成安装
如果是双启动,请清理 Windows。重新启动到 grub 菜单并选择 Windows。允许 Windows 检查并“修复”驱动器 C:(基本上 Windows 正在响应驱动器已重新调整大小的事实)。完成后,它将自动重新启动;再次选择 Windows 以验证 Windows 安装是否仍在正常运行。再次重新启动并选择 Ubuntu。
sudo apt update
使用和更新 Ubuntu(假设 USB wifi 适配器仍然安装;如果没有,请等到 wifi 修复)sudo apt upgrade
。
设置内部 Wifi
该目录中需要两个文件/lib/firmware/brcm
:
brcmfmac43340-sdio.bin
– 这在我的 16.04 安装中已经存在。brcmfmac43340-sdio.txt
– 您可能能够从 /sys/firmware/efi/efivars/ 复制 nvram* 文件(例如,nvram-74b00bd9-805a-4d61-b51f-43268123d113)作为 brcmfmac43340-sdio.txt:sudo cp /sys/firmware/efi/efivars/nvram* /lib/firmware/brcm/brcmfmac43340-sdio.txt
如果上述任一文件不存在,请从互联网上下载brcmfmac43340-sdio.bin
并brcmfmac43340-sdio.txt
复制到/lib/firmware/brcm
(需要sudo
)
sudo -H gedit /etc/modprobe.d/blacklist-custom.conf
(可能创建文件)并添加以下行:
blacklist brcmfmac
blacklist brcmutil
和
sudo -H gedit /etc/rc.local and add the following line:
modprobe brcmfmac
确保rc.local
是可执行的( )而不是列入黑名单,你可以在 modprobe 命令之前sudo chmod a+x /etc/rc.local
添加以下几行:/etc/rc.local
modprobe -r brcmfmac
modprobe -r brcmutil
重启;内部 WiFi 现在应该可以正常工作了
设置 wifi 以便找到 5Ghz 频段
sudo mv /lib/firmware/brcm/brcmfmac43340-sdio.txt /lib/firmware/brcm/brcmfmac43340-sdio.txt.bak
sudo wget https://raw.githubusercontent.com/harryharryharry/x205ta-iso2usb-files/master/brcmfmac43340-sdio.txt -O /lib/firmware/brcm/brcmfmac43340-sdio.txt
sudo modprobe -r brcmfmac
sudo modprobe brcmfmac
注意:无需修复 SD 卡读卡器——它从一开始就可以正常工作。
注意:无需修复触摸板——它从一开始就可以正常工作(包括双指滚动)。
暂停
修复尝试暂停导致的问题。转到系统设置/电源,为“不活动时暂停”选择“不暂停”(对电池和交流电都执行此操作)。
此时,除了声音和内部蓝牙之外,一切都运行良好。您可以使用 USB 蓝牙适配器解决这两个问题,直到当前所做的修复包含在主线内核之一中。
如果你需要更多解决冻结问题的方法,请查看用户 awakephd 的原始帖子这里。请注意,他在 中有一个拼写错误modEprobe
。
更新:将补丁应用到主线内核
可以将最新的补丁应用到正常安装的内核。这里是有关如何执行此操作的 Ubuntu 论坛帖子。
答案2
如果您可以访问 X205TA 或任何其他设备上的现有 Linux 系统,我强烈建议使用 harryharryharry 的脚本之一来准备安装媒体。最新版本支持许多发行版,并有为您创建可启动 USB 的选项。我使用较旧且更短的脚本版本,并自行制作可启动文件。
注意:在设备上设置 wifi 之前,USB 网络共享到 Android 设备通常可以有效地访问互联网。USB wifi 适配器有时对我有用。
这是脚本(由 harryharryharry 编写并在 Ubuntu 论坛上发布)
#!/bin/bash
set -e
set -u
ISOFILENAME=$1
ISOPATH=$(pwd)
ISO=$ISOPATH/$ISOFILENAME
TEMPDIR=$(mktemp -d -p $ISOPATH)
function checkroot {
if [ "$EUID" -ne 0 ]
then
echo "Please run as root"
removetempdir
exit 1
else
echo "You are root, continuing..."
fi
}
function checkfreespace {
if [ $(df -hk $ISOPATH|tail -n1|awk '{print $4}') -gt 6000000 ]
then
echo "Enough free space, continuing..."
else
echo "Not enough free space, move script and iso to a directory with more than 6GB free space and try again"
removetempdir
exit 2
fi
}
function checkpartitiontype {
if [ $(df -Thk $ISOPATH|tail -n1|awk '{print $2}') = "vfat" ] || [ $(df -Thk $ISOPATH|tail -n1|awk '{print $2}') = "ntfs" ]
then
echo "Wrong partition type: move the script and iso to a partition that supports group/ownership"
removetempdir
exit 3
else
echo "Partition type correct, continuing"
fi
}
function unzipiso {
7z x $ISO -o$TEMPDIR
}
function removetempdir {
cd $ISOPATH
rm -rf $TEMPDIR
}
function unsquash {
pushd $TEMPDIR/casper
unsquashfs filesystem.squashfs
popd
}
function addstuff2squash {
mkdir -p $TEMPDIR/casper/squashfs-root/etc/modprobe.d/
echo "blacklist btsdio" >> $TEMPDIR/casper/squashfs-root/etc/modprobe.d/blacklist.conf
mkdir -p $TEMPDIR/casper/squashfs-root/etc/systemd/system/suspend.target.wants
cat > $TEMPDIR/casper/squashfs-root/etc/systemd/system/suspend.target.wants/root-resume.service << "EOF"
[Unit]
Description=Local system resume actions
After=suspend.target
[Service]
Type=simple
ExecStart=/bin/bash /usr/bin/elan-fix
[Install]
WantedBy=suspend.target
EOF
cat > $TEMPDIR/casper/squashfs-root/usr/bin/elan-fix << "EOF"
#!/bin/sh
rmmod elan_i2c
modprobe elan_i2c
EOF
chmod +x $TEMPDIR/casper/squashfs-root/usr/bin/elan-fix
cat > $TEMPDIR/casper/squashfs-root/lib/firmware/brcm/brcmfmac43340-sdio.txt << "EOF"
manfid=0x2d0
prodid=0x0653
vendid=0x14e4
devid=0x4386
boardtype=0x0653
boardrev=0x1203
boardnum=22
macaddr=02:0A:F7:2A:3B:4C
sromrev=3
boardflags=0x0090201
xtalfreq=37400
nocrc=1
ag0=255
aa2g=1
aa5g=1
ccode=ALL
pa0itssit=0x20
pa0b0=6747
pa0b1=-808
pa0b2=-178
tssifloor2g=69
rssismf2g=0xf
rssismc2g=0x8
rssisav2g=0x1
cckPwrOffset=3
rssismf5g=0xf
rssismc5g=0x7
rssisav5g=0x3
pa1lob0=5659
pa1lob1=-693
pa1lob2=-178
tssifloor5gl=93
pa1b0=5172
pa1b1=-671
pa1b2=-212
tssifloor5gm=77
pa1hib0=5320
pa1hib1=-663
pa1hib2=-179
tssifloor5gh=74
rxpo5g=0
maxp2ga0=0x4E
cck2gpo=0x0000
ofdm2gpo=0x42000000
mcs2gpo0=0x2222
mcs2gpo1=0x7662
maxp5ga0=0x46
maxp5gla0=0x46
maxp5gha0=0x46
ofdm5gpo=0x52222222
ofdm5glpo=0x52222222
ofdm5ghpo=0x52222222
mcs5gpo0=0x0000
mcs5gpo1=0x8550
mcs5glpo0=0x0000
mcs5glpo1=0x8550
mcs5ghpo0=0x0000
mcs5ghpo1=0x8550
swctrlmap_2g=0x00080008,0x00100010,0x00080008,0x011010,0x11f
swctrlmap_5g=0x00020002,0x00040004,0x00020002,0x011010,0x2fe
gain=32
triso2g=8
triso5g=8
loflag=0
iqlocalidx5g=40
dlocalidx5g=70
iqcalidx5g=50
lpbckmode5g=1
txiqlopapu5g=0
txiqlopapu2g=0
dlorange_lowlimit=5
txalpfbyp=1
txalpfpu=1
dacrate2xen=1
papden2g=1
papden5g=1
gain_settle_dly_2g=4
gain_settle_dly_5g=4
noise_cal_po_2g=-1
noise_cal_po_40_2g=-1
noise_cal_high_gain_2g=73
noise_cal_nf_substract_val_2g=346
noise_cal_po_5g=-1
noise_cal_po_40_5g=-1
noise_cal_high_gain_5g=73
noise_cal_nf_substract_val_5g=346
cckpapden=0
paparambwver=1
EOF
curl http://sprunge.us/SZET | base64 -d > $TEMPDIR/casper/squashfs-root/lib/firmware/brcm/brcmfmac43340-sdio.bin
curl http://sprunge.us/XIKF | base64 -d > $TEMPDIR/casper/squashfs-root/lib/firmware/brcm/BCM43341B0.hcd
cat > $TEMPDIR/casper/squashfs-root/etc/systemd/system/multi-user.target.wants/btattach.service << "EOF"
[Unit]
Description=Btattach
[Service]
Type=simple
ExecStart=/usr/bin/btattach --bredr /dev/ttyS1 -P bcm
ExecStop=/usr/bin/killall btattach
[Install]
WantedBy=multi-user.target
EOF
echo "hci_uart" >> $TEMPDIR/casper/squashfs-root/etc/modules
}
function makesquash {
mksquashfs $TEMPDIR/casper/squashfs-root/ $TEMPDIR/casper/filesystem.squashfs -noappend -always-use-fragments
rm -rf $TEMPDIR/casper/squashfs-root/
}
function addstuff2iso {
mkdir -p $TEMPDIR/EFI/BOOT
curl http://sprunge.us/PYNY |base64 -d > $TEMPDIR/EFI/BOOT/bootia32.efi
sed -i 's/--/intel_idle.max_cstate=1 --/g' $TEMPDIR/boot/grub/grub.cfg
}
function createzip {
cd $TEMPDIR
zip -ry $ISOPATH/$ISOFILENAME.zip .
removetempdir
successfulmessage
}
function successfulmessage {
echo "+---------------------------------------------------------------------------------"
echo "| Done creating the Live USB zip-file! "
echo "| Now copy the contents of this zip-file to a fat32 formatted USB stick. "
echo "+---------------------------------------------------------------------------------"
}
checkroot
checkfreespace
checkpartitiontype
unzipiso
unsquash
addstuff2squash
makesquash
addstuff2iso
createzip
exit 0
要使用,请将文本复制到文件中,将其另存为任何你喜欢的形式,例如iso2zip
,下载任何 64 位 Ubuntu iso(我针对 16.04、16.10 和 17.04 进行了测试)并将 iso 文件和脚本文件放在至少有 8GB 可用空间的同一目录中。运行
chmod u+x iso2zip # or whatever you named the file
sudo ./iso2zip name-of-iso.iso # replace with the correct name
它会将 iso 重新打包为 zip 文件。插入备用 USB 闪存驱动器并用 标识它lsblk
。我们假设它是/dev/sdc
(您必须更正它并使用正确的名称!)如果驱动器已安装文件系统,请卸载它们(例如udisksctl unmount -b /dev/sdc1
)从 iso.zip 文件所在的目录运行以下命令,或使用您自己喜欢的方法制作可启动 USB:
请注意,这将破坏/dev/sdc
sudo apt install p7zip-full
sudo sgdisk --zap-all /dev/sdc
sudo sgdisk --new=1:0:0 --typecode=1:ef00 /dev/sdc
sudo mkfs.vfat -F32 /dev/sdc1
sudo mount -t vfat /dev/sdc1 /mnt
sudo 7z x name.of.file.iso.zip -o/mnt/ # use correct name!
sudo umount /mnt
在 X205TA 上,从关机状态打开电源,然后按F2调出 UEFI 菜单并关闭安全启动(如果尚未关闭)。要从 USB 启动,请从此处的启动顺序中选择它,或者重新启动并按esc获取启动菜单并选择 USB。选择尝试 Ubuntu并连接到 WiFi(它将工作)。运行安装程序,选择您喜欢的任何选项。完成后重新启动。
安装后,编辑 GRUB 的配置文件以传递启动参数来防止冻结:
sudo nano /etc/default/grub
改变
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash"
到
GRUB_CMDLINE_LINUX_DEFAULT="quiet splash intel_idle.max_cstate=1"
保存,退出,运行
sudo update-grub
要发出声音,请运行以下代码harryharryharry 的帖子在这里安装支持它的内核:
wget ftp://x205ta.myftp.org:1337/kernel/kernel-sound-64bit.tar
tar xf kernel-sound-64bit.tar
sudo ./install-sound-kernel.sh -v
或者自己编译
TODO:使休眠功能与声音支持内核一起工作。(它与原始内核一起工作,只需进行一些调整 - 请参阅我的答案在这里)
有关亮度控制,请参阅解决方法
答案3
我是个菜鸟,感谢大家,现在我可以享受使用装有 ubuntu 18.04 的那台出色笔记本电脑了。(特别感谢 Harry)
对于所有新手来说,这里有最简单的方法:
- 使用 Multisystem 创建可启动的 USB 驱动器(http://liveusb.info/dotclear/) 使用您喜欢的发行版 -插入 USB wifi 加密狗 + 您刚刚创建的可启动棒 -在 X205Ta 唤醒时多次按 F2 -在启动菜单中禁用安全启动 + 确保 USB 配置为 EHCI + 在您创建的闪存驱动器上设置首次启动 -在安装过程中设置与您的 wifi 网络的连接,以便安装程序可以下载“一些东西”,允许 grub-ia386 安装在 /target/ 中(如果没有互联网连接,您将看到类似“无法将 grub-ia386 安装到 /target/ 中”的错误)
此后,您将拥有一个漂亮的 Ubuntu 裸机(没有 wifi、声音、蓝牙和冻结)。
现在为了避免 wifi 和冻结,请按照上述步骤操作
对于声音我建议遵循以下步骤: 我的华硕 X205TA 没有声音 (这是最简单的方法,而且 harry 的 github 不再可访问)它也会修复蓝牙。
您将享受迄今为止最佳的超轻笔记本电脑体验!!!
再次感谢 Linux 社区的所有人!自由真棒!