-1

最近、nexus 7 2013 に ubuntu touch をインストールしましたが、Moxa Uport USB アダプタのドライバをインストールする際に問題が発生しました。実際にはドライバーをコンパイルする必要があるため、Linux ヘッダーをインストールする必要があります。私は次のことを発見しました:

apt-get install linux-headers-`uname -r`

/lib/modules に何かを書き込む必要があり、このパスは読み取り専用としてマウントされている /dev/loop1 に属します。rw に再マウントすることはできますが、そこに 1 回書き込もうとすると、読み取り専用にフォールバックします。

/etc/fstab の loop1 または /lib/modules については何もありません

指図:

mount | grep loop1

出力:

/dev/loop1 on /android/system type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /etc/ubuntu-touch-session.d/android.conf type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /lib/udev/rules.d/70-android.rules type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /usr/share/powerd/device_configs/config-default.xml type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /lib/modules type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /var/lib/lxc/android/rootfs/system type ext4 (ro,relatime,data=ordered)

指図:

blockdev --report |grep loop1

出力:

ro   256   512  4096          0       126427136   /dev/loop1

それから:

blockdev --setrw /dev/loop1
blockdev --report |grep loop1

出力:

rw   256   512  4096          0       126427136   /dev/loop1

指図:

mount -o remount,rw /dev/loop1
mount | grep loop1

出力:

/dev/loop1 on /android/system type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /etc/ubuntu-touch-session.d/android.conf type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /lib/udev/rules.d/70-android.rules type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /usr/share/powerd/device_configs/config-default.xml type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /lib/modules type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /var/lib/lxc/android/rootfs/system type ext4 (rw,relatime,data=ordered)

奇妙なことに、/var/lib/lxc/android/rootfs/system のみが rw に設定されていました

それで:

mount -o remount,rw /lib/modules
mount | grep loop1

出力:

/dev/loop1 on /android/system type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /etc/ubuntu-touch-session.d/android.conf type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /lib/udev/rules.d/70-android.rules type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /usr/share/powerd/device_configs/config-default.xml type ext4 (ro,relatime,data=ordered)
/dev/loop1 on /lib/modules type ext4 (rw,relatime,data=ordered)
/dev/loop1 on /var/lib/lxc/android/rootfs/system type ext4 (rw,relatime,data=ordered)

しかし:

mkdir /lib/modules/rrr

出力:

mkdir: cannot create directory Б─≤/lib/modules/rrrБ─≥: Read-only file system

dmesg:

[ 8280.681213] EXT4-fs (loop1): previous I/O error to superblock detected
[ 8280.681579] Buffer I/O error on device loop1, logical block 0
[ 8280.682006] lost page write due to I/O error on loop1
[ 8280.682037] EXT4-fs error (device loop1): ext4_journal_start_sb:328: Detected aborted journal
[ 8280.682891] EXT4-fs (loop1): Remounting filesystem read-only
[ 8280.683135] EXT4-fs (loop1): previous I/O error to superblock detected
[ 8280.683593] Buffer I/O error on device loop1, logical block 0

上記の理由は次のとおりだと思います。

apt-get install linux-headers-`uname -r`

次のエラーで失敗します:

Unpacking linux-headers-3.4.0-5-flo (3.4.0-5.19~15.04.1) ...
dpkg: error processing archive /var/cache/apt/archives/linux-headers-3.4.0-5-flo_3.4.0-5.19~15.04.1_armhf.deb (--unpack):
 error creating symbolic link `./lib/modules/3.4.0-5-flo/build': Read-only file system
Errors were encountered while processing:
 /var/cache/apt/archives/linux-headers-3.4.0-5-flo_3.4.0-5.19~15.04.1_armhf.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

それで、私はこれで立ち往生しました、誰か助けてもらえますか?

よろしく、ビクター

4

2 に答える 2

1

まあ、ubuntu touch、android、linux、armhf などの経験があまりないので、正しく簡単な方法で行うことができませんでした。おそらく boot.img をハッキングすると役立つかもしれませんが、私はこれを行う準備ができていません。

私が想像できた唯一の回避策は、/lib/modules/3.4.0-5-flo を別の新しいループ デバイスにマウントすることです。しかし、それは機能します。

cd /userdata
dd bs=1M count=100 if=/dev/zero of=build.img
losetup /dev/loop2 build.img
mkfs -t ext3 -m 1 -v /dev/loop2
mkdir /eee
mount -t ext3 /dev/loop2 /eee
cp -r /lib/modules/3.4.0-5-flo/. /eee
umount /eee
mount /dev/loop2 /lib/modules/3.4.0-5-flo
rmdir /eee

この時点から、Linux ヘッダーをインストールして Moxa のドライバーをコンパイルできるようになりました。ところで、ドライバの makefile も /lib/modules/3.4.0-5-flo に書き込むことを発見しました。

したがって、マウントを永続的にするには、/etc/fstab の変更に失敗しました。rc.local に追加する必要がありました。

losetup /dev/loop2 /userdata/build.img
mount /dev/loop2 /lib/modules/3.4.0-5-flo
modprobe mxu11x0

私はそれがかなり奇妙な解決策であることを知っていますが、私にとってはうまくいきました:)

于 2016-06-08T06:20:38.223 に答える