在Onda v820w 平板安装三系统(Linux, Win, Android)
Onda v820w 平板使用的是 Intel Z3735F CPU,本质上就是一台普通 PC .
只是麻烦的地方有两点,一是只支持 EFI 启动, 二是 EFI 只支持 32 位.
准备工具:
- otg 线
- usb hub
- usb 键盘与鼠标
- U 盘 多个
平板本身就支持 Android 和 Win 双启动.添加 Linux 系统有两种安装方式,一种是安装到 SD 卡. 一种是把 Win 分区删除掉重新分区,分 8G 左右给 Linux . Win 用 12 G.
本文主要介绍把 Win 重新分区后再安装 Archlinux . 从安装的简易程度来说, Debian 应该是优选的发行版本,是唯数不多的还支持 32 bit CPU 的发行版本.
Archlinux 已经不支持 32 bit CPU, 平板的CPU是 64 bit,但其 UEFI 只支持 32 bit .所以 archlinux 的 usb 启动盘只能手动创建,而使用 cp archlinux.iso /dev/sdb
的创建的启动盘在普通电脑能启动,但这平板是不行的.
制作 archlinux 启动盘
-
使用 fdisk 等你熟悉的磁盘分区工具进行分区, gpt 分区表, 一个 Microsoft basic data 分区,分区格式为 fat32.
使用
mkfs.vfat -F 32 -n ARCH /dev/sdb1
命令进行格式化时,把分区 Label 设置为 ARCH ,后面 grub 配置文件是根据 LABEL 查找根目录的.注意要把命令的设备路径改成你的. -
提取 iso 文件到 U盘,参考 https://wiki.archlinux.org/index.php/USB_flash_installation_media#Using_manual_formatting
# mkdir -p /mnt/{iso,usb}
# mount -o loop archlinux-version-x86_64.iso /mnt/iso
# mount /dev/sdXn /mnt/usb
# cp -a /mnt/iso/* /mnt/usb
# sync
# umount /mnt/iso
- 安装 32 bit UEFI 启动文件, 参考 https://wiki.archlinux.org/index.php/ASUS_x205ta#Creating_bootia32.efi https://wiki.archlinux.org/index.php/GRUB/Tips_and_tricks#GRUB_standalone
# 把 /run/media/outman/ARCH/ 路径替换你的u盘的挂载路径.
grub-mkstandalone -d /usr/lib/grub/i386-efi/ -O i386-efi --modules="part_gpt part_msdos" --locales="en@quot" --themes="" -o "/run/media/outman/ARCH/EFI/boot/bootia32.efi" "boot/grub/grub.cfg=./grub.cfg" -v
创建 /run/media/outman/ARCH/EFI/boot/grub.cfg 文件,记得路径是你的路径.
<FS-LABEL> 替换成 ARCH (之前的 U 盘的分区 Label)
insmod part_gpt
insmod part_msdos
insmod fat
insmod efi_gop
insmod efi_uga
insmod video_bochs
insmod video_cirrus
insmod font
if loadfont "${prefix}/fonts/unicode.pf2" ; then
insmod gfxterm
set gfxmode="1024x768x32;auto"
terminal_input console
terminal_output gfxterm
fi
menuentry "Arch Linux archiso x86_64" {
set gfxpayload=keep
search --no-floppy --set=root --label <FS-LABEL>
linux /arch/boot/x86_64/vmlinuz archisobasedir=arch archisolabel=<FS-LABEL> add_efi_memmap
initrd /arch/boot/x86_64/archiso.img
}
menuentry "UEFI Shell x86_64 v2" {
search --no-floppy --set=root --label <FS-LABEL>
chainloader /EFI/shellx64_v2.efi
}
menuentry "UEFI Shell x86_64 v1" {
search --no-floppy --set=root --label <FS-LABEL>
chainloader /EFI/shellx64_v1.efi
}
这样, archlinux 的启动盘已经制作完成.
调整分区,重装 Win
- 推荐使用 rufus 制作 win 启动盘.
- 官网 Win 10 驱动下载地址: http://www.onda.cn/Tablet_Supports.aspx?id=323
- rufus 重装 win 时,把原来的 win 分区删除掉,然后分 12G 给 Win 差不多了.
安装 archlinux 系统
- 接入 otg , usb hub ,键盘 .
- 重启或开机不停按 ESC , 之后进 BOOT MANAGE ,选择你的 U 盘启动.
- 如果没有看到 U 盘,可以尝试使用 BOOT FROM FILE,选择 EFI/boot/bootia32.efi 文件,这样会进入一个 grub shell,之后可以使用
configfile (hd0,gpt1)/EFI/boot/grub.cfg
(带自动补全,自己补对目录) 来启动自己写的 grub 配置文件,高手可以直接在 grub shell 里敲命令启动. - 稍等几十秒启动完成后, 使用
wifi-menu
连接 wifi ,自带无线驱动,连上就可以用. - 之后就是普通的 archlinux 安装流程,我这就不细写了,只写一些需要注意的地方.
Linux 分区分两个,一个 boot 分区(同时是EFI分区), 一个根目录分区.
下面是我的分区表信息,供参考
/dev/mmcblk1p18 是 boot 分区
/dev/mmcblk1p19 是 linux 根目录分区
Disk /dev/mmcblk1: 28.9 GiB, 31037849600 bytes, 60620800 sectors
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Device Start End Sectors Size Type
/dev/mmcblk1p1 40 131111 131072 64M EFI System
/dev/mmcblk1p2 131112 262183 131072 64M Microsoft basic data
/dev/mmcblk1p3 262184 294951 32768 16M Microsoft basic data
/dev/mmcblk1p4 294952 327719 32768 16M Microsoft basic data
/dev/mmcblk1p5 327720 360487 32768 16M Microsoft basic data
/dev/mmcblk1p6 360488 393255 32768 16M Microsoft basic data
/dev/mmcblk1p7 393256 524327 131072 64M Microsoft basic data
/dev/mmcblk1p8 524328 589863 65536 32M Microsoft basic data
/dev/mmcblk1p9 589864 622631 32768 16M Microsoft basic data
/dev/mmcblk1p10 622632 655399 32768 16M Microsoft basic data
/dev/mmcblk1p11 655400 688167 32768 16M Microsoft basic data
/dev/mmcblk1p12 688168 2785319 2097152 1G Microsoft basic data
/dev/mmcblk1p13 2785320 3309607 524288 256M Microsoft basic data
/dev/mmcblk1p14 3309608 5406759 2097152 1G Microsoft basic data
/dev/mmcblk1p15 5406760 20086823 14680064 7G Microsoft basic data
/dev/mmcblk1p16 20088832 20121599 32768 16M Microsoft reserved
/dev/mmcblk1p17 20121600 45254655 25133056 12G Microsoft basic data
/dev/mmcblk1p18 45254656 45778943 524288 256M EFI System
/dev/mmcblk1p19 45778944 60620766 14841823 7.1G Linux filesystem
# 格式化分区
mkfs.vfat -F 32 -n ARCHBOOT /dev/mmcblk1p18
mkfs.ext4 -E lazy_itable_init /dev/mmcblk1p19
挂载分区
mount /dev/mmcblk1p19 /mnt
mkdir /mnt/boot
mount /dev/mmcblk1p18 /mnt/boot
arch-root 后安装完后,执行下面命令.
# wifi 用
pacman -S wpa_supplicant dialog # wifi-menu
# 启动用
pacman -S grub efibootmgr
# 安装启动 /boot/ 目录是挂载的 EFI 分区
grub-install --target=i386-efi --efi-directory=/boot/ --bootloader-id=GRUB
grub-mkconfig -o /boot/grub/grub.cfg
之后就是重启,然后不停按 ESC 键,之后在 EFI 启动项里,可以看到 GRUB 启动项,选择启动即可,三系统安装完成.
一些坑
1. 重新刷 Android 进不了 DNX Mode ?
按 ESC 选 SCU 进 BIOS 设置,进 BOOT 的 TAB , 关闭 Quick boot .
然后官方的文档是说等显示 DNX Mode 才释放三个按键.事实上,同时按 音量上下加开机键 后,出现字就释放开机键,还保持音量上下键不放,等进入 DNX Mode 再释放.
2. Linux 终端下旋转屏幕 (无X)
https://askubuntu.com/questions/237963/how-do-i-rotate-my-display-when-not-using-an-x-server
echo 1 > /sys/class/graphics/fbcon/rotate
0 - Normal rotation
1 - Rotate clockwise
2 - Rotate upside down
3 - Rotate counter-clockwise
X 环境下使用 xrandr
3. 触屏驱动
https://github.com/onitake/gsl-firmware
4. 只安装 Win 或 linux
其实就是普通的电脑一样,删除掉所有分区重新分区即可.
http://www.ondaforum.com/topic/3544-guide-remove-android-and-install-only-windows-8-or-10-v820w/
5. 不错的参考
https://hhuysqt.github.io/ubuntu-tablet/