Onda v820w 平板使用的是 Intel Z3735F CPU,本质上就是一台普通 PC .
只是麻烦的地方有两点,一是只支持 EFI 启动, 二是 EFI 只支持 32 位.

准备工具:

  1. otg 线
  2. usb hub
  3. usb 键盘与鼠标
  4. 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 启动盘

  1. 使用 fdisk 等你熟悉的磁盘分区工具进行分区, gpt 分区表, 一个 Microsoft basic data 分区,分区格式为 fat32.

    使用 mkfs.vfat -F 32 -n ARCH /dev/sdb1 命令进行格式化时,把分区 Label 设置为 ARCH ,后面 grub 配置文件是根据 LABEL 查找根目录的.注意要把命令的设备路径改成你的.

  2. 提取 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
  1. 安装 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 系统

  1. 接入 otg , usb hub ,键盘 .
  2. 重启或开机不停按 ESC , 之后进 BOOT MANAGE ,选择你的 U 盘启动.
  3. 如果没有看到 U 盘,可以尝试使用 BOOT FROM FILE,选择 EFI/boot/bootia32.efi 文件,这样会进入一个 grub shell,之后可以使用 configfile (hd0,gpt1)/EFI/boot/grub.cfg(带自动补全,自己补对目录) 来启动自己写的 grub 配置文件,高手可以直接在 grub shell 里敲命令启动.
  4. 稍等几十秒启动完成后, 使用 wifi-menu 连接 wifi ,自带无线驱动,连上就可以用.
  5. 之后就是普通的 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/