とむむの日々

埼玉県某市に住む「とむむ」の日記です。2008年3月から、関心のあることを書き連ねる日常の記録です。

MENU

Debian11で、DG-STK1の内蔵無線LANを利用できるようにしよう! | Diginnos Stick DG-STK1B リブート その4

f:id:tomumu:20210817190709p:plain

どうも、とむむです。

今回は、内蔵無線LANをインストール時に有効にする方法とインストール後に有効にする方法を紹介したい。
また、twitterで「インストール時にopen-ssh serverを選択できませんか?」とコメントを頂いたので、その調査結果も合わせて触れておきたい。*1

インストール時に内蔵無線LANを有効にする方法

とむむの無線LAN環境ではうまく動かなかったので、ご自分の環境で動けばラッキーくらいの感覚でお試し頂きたい。

事前準備(dpkg-debコマンドが叩けるdebian/UbuntuなどのLinux環境)

f:id:tomumu:20210817191628p:plain

前回のインストール時のネットワークハードウェアの検出にヒントがあるが、DG-STK1Bの無線LANを認識させるためのファームウェアファイルはrtl8723bs_nic.binだと分かる。

ここからの作業はdpkg-debコマンドが叩けるdebian/UbuntuなどのLinux環境を準備してから実施しよう。*2

1. ファームウェアファイルを探す

まずは、ファームウェアファイルを探すところからだ。
rtlxxxxはファイル名からも分かるように、Realtek製の無線LANだ。

2. ファームウェアが含まれるdebパッケージのダウンロード

Debianのnon-freeリポジトリ内にfirmware-realtekがあるので、以下のページへアクセスする。

packages.debian.org

上記のページ内にお目当てのファームウェアファイルが含まれていることを確認。

ちなみに、2021年8月17日現在のパッケージは、firmware-realtek_20210315-3_all.debだった。

3. インストールUSBメモリファームウェアファイルをコピー
4. インストールUSBメモリLinuxにマウント

とむむの場合はUSBメモリのデバイス名が/dev/sda1 だったので、以下のコマンドでマウントした。

$ sudo mkdir /mnt/usb
$ sudo mount /dev/sda1 /mnt/usb
$ mkdir /mnt/usb/rtlwifi 
5. debパッケージからbinファイルを抽出してインストールUSBメモリにコピー

dpkg-debコマンドが利用出来る環境で作業する。*3

$ wget http://ftp.jp.debian.org/debian/pool/non-free/f/firmware-nonfree/firmware-realtek_20210315-3_all.deb
$ dpkg-deb -x firmware-realtek_20210315-3_all.deb realtek
$ cp realtek/lib/firmware/rtlwifi/rtl8723bs_nic.bin /mnt/usb/rtlwifi
インストール時に内蔵の無線LANを有効にする手順

以下の手順でインストールを進める。

  1. 以下の画面が出るまでは、前回と同様の手順でインストールする。 f:id:tomumu:20210817191628p:plain
  2. 上記の画面が出てきたら、キーボードのAlt + F2を押す。 f:id:tomumu:20210817201311j:plain
  3. 上記の画面で、Enterを押すように促されるので、Enterを押す。 f:id:tomumu:20210817201532j:plain
  4. consoleモードにはいったら、dfなどで現在のマウント状態を確認する。 f:id:tomumu:20210817201852j:plain
  5. /cd-romがマウントされていることを確認できたら、cp -r /cdrom/rtlwifi /lib/firmware を実行する。 f:id:tomumu:20210817202110j:plain
  6. キーボードのAlt + F1を押して、以下の画面に戻り、「はい」を押す。 f:id:tomumu:20210817191628p:plain
  7. ネットワークの設定で、wlan0: 無線 Ethernet (802.11x) を選択する。 f:id:tomumu:20210817203954p:plain
  8. ネットワークの設定で、自宅やご近所の無線ネットワークのESSIDが見えるようになるので、自分のESSIDを選択する。 f:id:tomumu:20210817204822p:plain
  9. ネットワークの設定で、自分のESSIDのパスフレーズを入力する。 f:id:tomumu:20210817210655p:plain
  10. アクセスポイントとの鍵交換を試行中…が完了するのを待つ。*4 f:id:tomumu:20210817210729j:plain

ここまで準備して無線LANに繋がらなかったら、前回の手順でインストールする。。

インストール後に内蔵無線LANを有効にする方法

ファームウェアのパッケージをインストールして、無線LANの設定をすれば終わり…のはずが、再起動時にうまく繋がらないことが分かった。
再起動時のワークアラウンドも見つけたので、その方法も記載しておく。

有線LANに接続してパッケージをインストールする
1. ポジトリを設定する

non-freeを追加する

$ sudo su -
# echo "deb http://ftp.riken.jp/Linux/debian/debian/ bullseye non-free" >> /etc/apt/sources.list
# echo "deb-src http://ftp.riken.jp/Linux/debian/debian/ bullseye non-free" >> /etc/apt/sources.list
# apt update
2. firmware-realtekをインストールする
$ sudo su -
# apt install firmware-realtek -y
無線LANを設定する
1. 無線LANのコンフィグファイルを作成する。

SSID名とパスフレーズを入力する。*5

$ wpa_passphrase "SSID名" *******(パスフレーズを入力) > /tmp/wpa_supplicant.conf
$ sudo mv /tmp/wpa_supplicant.conf /etc/wpa_supplicant/
2. interfacesファイルを設定する。(一旦はdhcpで設定)
$ sudo vi /etc/network/interfaces
-----<以下を追記
# WLAN
auto wlan0
iface wlan0 inet dhcp
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf
3. 無線LANを有効にする。
$ sudo ifup wlan0
$ ip addr show dev wlan0
2: wlan0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP group default qlen 1000
    link/ether xx:xx:xx:xx:xx:xx brd ff:ff:ff:ff:ff:ff
    inet xxx.xxx.xxx.xxx/xx brd xxx.xxx.xxx.255 scope global wlan0
       valid_lft forever preferred_lft forever
    inet6 xxxx:xx:xxxx:xxx:xxxx:xxxx:xxxx:xxxxx/64 scope global dynamic mngtmpaddr 
       valid_lft 14329sec preferred_lft 12529sec
    inet6 xxxx::xxxx:xxxx:xxxx:xxxxx/64 scope link 
       valid_lft forever preferred_lft forever
起動時に無線LANを有効にする

このまま再起動しても無線LANのLinkがDownしたまま上がってくるので、小細工をする。

1. rc.localを追加にする。
$ sudo su -
# cat <<EOF > /etc/rc.local 
#!/bin/sh -e
ifdown wlan0
ifup wlan0
exit 0
EOF
# chmod a+x /etc/rc.local
2. rc.localを有効にする。
$ sudo systemctl enable rc-local
3. 再起動する。
$ sudo reboot

インストール時にopen-ssh serverを選択できる? できない?

前回の最後の方で、以下のように書いていた。

Debianはデフォルトでopenssh-serverがインストールされないようなので、起動したら忘れずにインストールしておくこと。

結論から言うと、適切なインストールメディアを選べば、open-ssh serverの選択は可能だ。 f:id:tomumu:20210817232327p:plain

上記はインストールの途中に戻るなどを押すと、インストールのメニューが確認できる。
左がlive-cdのインストール時、右がiso-cdやiso-dvdのインストール時だ。

live-cdとiso-cd/dvdの異なる点

  • live-cdの方はシステムのインストールしかない。
  • iso-cd/iso-dvdの方はベースシステムのインストールソフトウェア選択とインストールが存在する。

なので、原因はlive-cdを利用していたことにある・・・。*6

オススメのインストールメディアは?

容量に関わらず、 debianのインストールにはネットワークが必要になるようだ。
なので、iso-cd がオススメだ。
700MB以下で済むので、1GBのUSBメモリにインストール可能だ。


以上で、Debian11のインストールは完了だ。

久々のDG-STK1Bだが、Debian11のおかげでまだまだ活用できる余地があることが分かった。
特に内蔵無線LANのみで運用できるようになったのは、意外と大きく、無線LANの届く範囲でUSB電源さえ確保できれば、置き場所を選ばなくなった。
これまでのエントリーを参考にしてもらい、DG-STK1系の復活に役立てて頂けると幸いだ。

それにしても、最近は64bitのLinuxばかり触っているので、32bitのLinuxは久しぶりだ。
しばらく使ってみて、32bitならではの制約などあれば、まとめてみたいと思う。

*1:実はトップ画が答えである・・・

*2:firmware-realtekパッケージからファームウェアファイルの抽出が必要なため

*3:とむむはUbuntu20.04環境で実施した。

*4:とむむはここで、無線LANの接続に失敗…

*5:wpa_supplicant.confの#pskに暗号化されていないパスフレーズが記載されているので、手動で削除しておくこと。

*6:当初の目論見は、live-cdのインストールメディアを利用すれば、ネットワークに接続されなくてもインストール可能になるのでは? だった。結果的にどのインストールメディアを利用した場合も、ネットワークに繋がっていないとインストールできず・・・意味がないようだ。