Armadilloフォーラム

autologin をさせようとserial-getty@.service を変更したらログインできなくなりました。リカバリーの方法を知りたい。

manabu-yoshioka-arc

2023年4月3日 17時59分

Armadillo-IOT A6 を使い、複数のプログラムの開発を続けてきました。開発の最後に自動ログイン&開発したプログラムの自動起動処理をさせようとして、`/lib/systemd/system/serial-getty@.service` ファイルの中の

```
ExecStart=-/sbin/agetty -o '-p -- \\u' --keep-baud 115200,38400,9600 %I $TERM
```
部分に `--autologin root --noclear` を追加し、reboot させたところ、下記のような表示が出てログインできない状態となってしまいました。タイプミスをしたのかもしれません。実機には今まで作りためたコードや設定を行なっていますので、イメージの書き換えをせずになんとかログインをできるようにしたいしたいです。
何か方法はありませんでしょうか。

ブート時の画面のコピーは以下です。
```
Debian GNU/Linux 10 armadillo ttymxc0
armadillo login: root (automatic login)

Usage: logi
Debian GNU/Linux 10 armadillo ttymxc0

armadillo login: root (automatic login)

Usage: login?
Debian GNU/Linux 10 armadillo ttymxc0

armadillo login: root (automatic login)

Usage: logi?
Debian GNU/Linux 10 armadillo ttymxc0

armadillo login: root (automatic login)

Usage: log?
Debian GNU/Linux 10 armadillo ttymxc0

armadillo login: root (automatic login)

Usage: login ?[ 25.896734] random: crng init done
[ 25.900169] random: 162 urandom warning(s) missed due to ratelimiting
```

補足情報:メイン基板のDsub9P は他の機器との通信に使うため、ログイン用のシリアルは IO拡張インターフェース側に書き換えています。
参考にしたブログ:[ログインの自動化は出来ますでしょうか?](https://armadillo.atmark-techno.com/forum/armadillo/2763)

コメント

at_akihito.irie

2023年4月3日 18時57分

入江です。

> 部分に `--autologin root --noclear` を追加し、reboot させたところ、下記のような表示が出てログインできない状態となってしまいました。タイプミスをしたのかもしれません。実機には今まで作りためたコードや設定を行なっていますので、イメージの書き換えをせずになんとかログインをできるようにしたいしたいです。
> 何か方法はありませんでしょうか。

Armadillo-IoT A6にはSDブートという機能があります。
SDブートを行なうことで、microSDカード内のブートローダ、カーネル、ユー
ザーランドでArmadilloを起動させることができます。

SDブートの手順は以下を参照してください。
https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…

SDブート後、以下のコマンドを実行することで、/mntディレクトリ以下にeMMC
のユーザーランドをマウントできます。

[armadillo]# mount /dev/mmcblk0p2 /mnt

/mnt以下のファイルはeMMC内のファイルですので、原因となっているファイル
の修正を行なってください。

[armadillo]# vi /mnt/lib/systemd/system/serial-getty@.service

修正後はeMMCをumountしてArmadilloを終了させてください。

[armadillo]# umount /mnt
[armadillo]# halt

eMMCから起動して動作確認を行なってください。

manabu-yoshioka-arc

2023年4月4日 15時08分

> Armadillo-IoT A6にはSDブートという機能があります。
> SDブートを行なうことで、microSDカード内のブートローダ、カーネル、ユー
> ザーランドでArmadilloを起動させることができます。
>
> SDブートの手順は以下を参照してください。
> https://manual.atmark-techno.com/armadillo-iot-a6/armadillo-iota6_produ…
>
microSDカードの準備等で時間がかかってしまいました。返信遅くなり申し訳ございません。

教えていただいた SDブートの活動に従い、ブートディスクを作ろうとしていますがエラーが発生してしまい、ブートディスクを作成できていません。
ターミナルの画面コピーは以下です。質問の内容が本来のものとはずれていますので、質問しなおしたほうがよければその旨ご連絡ください。

‘‘‘
atmark@atde8:~$ sudo which mkfs
[sudo] atmark のパスワード:
/usr/sbin/mkfs
atmark@atde8:~$ ls -l /dev/sd*
brw-rw---- 1 root disk 8, 0 4月 4 14:27 /dev/sda
brw-rw---- 1 root disk 8, 1 4月 4 14:27 /dev/sda1
brw-rw---- 1 root disk 8, 5 4月 4 14:27 /dev/sda5
atmark@atde8:~$
atmark@atde8:~$ sudo fdisk -l /dev/sda
Disk /dev/sda: 30 GiB, 32212254720 bytes, 62914560 sectors
Disk model: VMware Virtual S
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: dos
Disk identifier: 0x6ca28664

Device Boot Start End Sectors Size Id Type
/dev/sda1 2048 264191 262144 128M b W95 FAT32
/dev/sda2 264192 62914559 62650368 29.9G 83 Linux
atmark@atde8:~$ sudo mkfs.vfat -F 32 /dev/sda1
sudo: /usr/sbin/mkfs.vfat を実行できません: 入力/出力エラーです
atmark@atde8:~$
'''

at_akihito.irie

2023年4月4日 15時30分

入江です。

> atmark@atde8:~$ ls -l /dev/sd*
> brw-rw---- 1 root disk 8, 0 4月 4 14:27 /dev/sda
> brw-rw---- 1 root disk 8, 1 4月 4 14:27 /dev/sda1
> brw-rw---- 1 root disk 8, 5 4月 4 14:27 /dev/sda5

/dev/sdaは、ATDE本体が保存されているディスクファイルであり、SDカードでないです。
そのため、mkfsに失敗したものと思われます。

頂いたログから察するにSDカードがATDEに認識されていません。

USB接続のSDカードリーダーなどをご使用の場合は、カードリーダーをホストPCから切断して
仮想マシンに接続していただく必要があります。
詳細は以下のVMwareのマニュアルを参照してください。
https://docs.vmware.com/jp/VMware-Workstation-Player-for-Windows/17.0/c…

manabu-yoshioka-arc

2023年4月4日 16時17分

> > atmark@atde8:~$ ls -l /dev/sd*
> > brw-rw---- 1 root disk 8, 0 4月 4 14:27 /dev/sda
> > brw-rw---- 1 root disk 8, 1 4月 4 14:27 /dev/sda1
> > brw-rw---- 1 root disk 8, 5 4月 4 14:27 /dev/sda5
>
> /dev/sdaは、ATDE本体が保存されているディスクファイルであり、SDカードでないです。
> そのため、mkfsに失敗したものと思われます。

回答ありがとうございます。私も作業中、/dev/sdb でないことに疑問を感じていましたが、VMWare でのUSBデバイス(SDカード)の認識は仮想マシン側にしていたつもりでしたので、(2回ほど切断と接続を繰り返しても出でこないので)おかしいなと思いながら /dev/sda で作業をしてしまいました。
結果ですが、そのまま fdisk を /dev/sda つまり ATDE にしてしまったのでしょうか、ATDE が終了できなくなり、armadillo からのシリアルターミナルのキーボード入力も英語キーボードの設定となってしまいました。

ですので、このまま色々おかしくなってしまった状態で開発を続けても無駄が多いと判断し、先ほど armadillo IOT A6 本体は、インストールディスクイメージ をSDカードに書き込んで eMMC は初期状態に戻しました。(Mac の dd コマンドで書き込みました)。正しく出荷状態に戻っているように思えます。この後 ATDE もインストールし直し開発環境から再構築していきます。
自動ログインについて、また開発環境の構築についての疑問点は出てきているのですが、それはまた別の質問とさせていただき、この質問のスレッドは以上で終了とさせてください。よろしくお願いします。ありがとうございました。