Category Archives: Linux

fon2405e hack: SPI フラッシュを換装してOpenWrtをインストールする

かなり前にfon2405eへカスタムファームウェアを入れ替えたことがあるのですが、今回、2MBしかないSPIフラッシュを8MB(MX25L6405D)に置き換えてOpenWrtを入れてみます。このことに思い立ったのは前回、IPカメラにOpenWrtをインストールして、思っていたよりも使い道があったことが理由です。IPカメラのSoCはRT5350FでRT3050系の2世代目にあたり、fon2405e/fon2305eはRT3050Fで1世代目に当たります。それなので機能的にはクロックや機能に多少違いがあるものの基本的に同じなので、fon2405eもOpenWrtを入れれば使い道が出てくるということです。OpenWrtでは4M/32MルータのサポートはV19で終了なので、改造するなら今が最後のチャンスと見てよいでしょう。 OpenWrtのインストール方法 fon2405eにシリアル用のヘッダーピンを立てます。LANポートを上にしてGnd Tx Rx Vccの順です。そしてPCからシリアルアクセス(57600 / 8N1)できるようにします。LANケーブルをPCとfon2405e(PCポート)につなぎます。 fon2405e用のinitramfsのファームウェアをダウンロードしてfonita,imgにリネームしてtftp(tftpd-hpa)サーバのルートディレクトリに置きます。サーバのアドレスを10.10.10.3/24にセットアップします。 WPSボタンを押しながら電源を入れ数秒後、「2」を押してu-boot環境に入ります。タイミングが難しいのでアクセスするまで何度もトライするかもしれません。そのメニューからtftpサーバ(ftpd-hpa)に置いてあるinitramfsイメージをロードしてmtdコマンドでu-bootをアップグレードします。もしくはオリジナルのu-bootでもできるかもしれませんが私は試していません。u-bootは換装後でもアップグレードできます。 次にSPIフラッシュを2GBからu-bootを焼いた4GBもしくは8GBに換装します。4GBのSPIフラッシュは8ピン、8GBは16ピンになります(注:MX25L6406Eは8ピンタイプです)。8ピンの場合はクリップを挟んで焼けますが、16ピンの場合は基盤にハンダ付けしてROMライターにセットします。ROMライターで基盤から取り外したSPIフラッシュのイメージを保存します。エラーが起きやすいので数回行い、md5sum等で正確にコピーできたかチェックします。 SPIフラッシュの焼き方 ファームウェアの焼き方は何通りかあり、u-bootコマンドで直接ROMを焼く方法、OpenWrtのinitramfsをロードしてからsysupgradeでROM版を焼く方法があります。 ファームウェアを自分でビルドする Build OpenWrt gitでOpenWrtのソースをダウンロードしパッチを当ててコンパイルします。 コンパイルに失敗したときはログを出力させて原因を調べます。 Build u-boot ソースに設定変更したパッチを当ててビルドするか自分で設定してビルドします。基本、u-bootの起動に失敗したらSPIフラッシュをROMライターで書き込む以外方法はありません。試してみたところOLinuXinoのu-boot(v4.0)のソースが使えます。u-bootのビルドはUbuntu 12.04.5 32bitを使いました。ソースが古いためディストビューションのバージョンによってはビルドに失敗することもあるようです。 注意: u-bootのパーティションサイズはOpenWrtと同じ標準サイズでサブセット版のオリジナルに比べて大きくなっており、SDKのイメージ、オリジナルのFONのイメージを書き込むと使用不能になります。 kermit u-bootをビルド・インストールできたものの、FirmwareのロードでLZMA解凍に失敗した場合、kermitを使ってシリアル経由で圧縮していないFirmwareを転送する方法を使います。Kermitはビルドがすんなりいってくれそうもなく、当時の最新バージョンではソースを少し変更しました。 kermit-9.0.302.diff 簡単な操作方法 Ctrl+\ :ターミナルから抜ける s <filename> :ファイルを転送する 通信設定 .kermrc WLANのeepromのインストール SPIフラッシュを換装してu-bootとfirmwareをインストールできても、まだWLANが使えない問題があります。原因はWLANのeepromがないためです。そこでRalink SDKで作ったファームウェアを調べてそれを使ってみることにしました。元のFONでもいいのですがアクセスが難しいのでRalink SDKのイメージから/etcにあるeeprom(RT3050_AP_1T1R_V1_0.bin)を取り出しました。OpenWrtのeepromはmtd2に保存してあるようで、同じパーティション構成のIPカメラのeepromでhexdumpで調べて比較してみたところ、先頭がボード番号になっていたので、同じことをRT3050_AP_1T1R_V1_0.binでやってみたました。同じくボード番号(3050)だったので、mtdに書き込めば使えるだろう予想して試したところできることが確認できました。 … Continue reading

Posted in DIY, Linux, OpenWrt | Comments Off on fon2405e hack: SPI フラッシュを換装してOpenWrtをインストールする

NginxのUNIXドメインソケット

このサイトが突然アクセスできなくなったので調べてみたところ、ソケットにアクセスできない現象が発生していました。 nginxが再起動した時に前のソケットが残っていて再接続ができなくなっていました。解決方法は前も同じ現象があった時に、systemdファイルを変更したことがあったので、備忘録用に記事にしました。 /lib/systemd/system/nginx.service サイトは自動的にアップデートする仕様になっているので、システムを変更していると突然使えなくなることがあります。

Posted in Linux | Comments Off on NginxのUNIXドメインソケット

CSR4.0 BTドングルとLinux Kernel 5.7

ArmbianのKernelをアップデートしてBTドングルが使えないとわかった時は安物のBT USBドングルを買ったとことを後悔しました。確かに今まで使えないことはなかったのですが、どうやら純正のCSR製品でないらしくカーネルのアップグレードで使えなくなりました。恐らくかなりこの偽物が出回っているのでいずれは解決するだろうと考えていたので、検索したらパッチがありました。 https://patchwork.kernel.org/patch/11644615/ このパッチを当ててカーネルをビルドしたら使えるようになりました。中国製は安くて便利なのですが偽物が思わぬ不具合を出すときがあります。この偽物CSRドングルはベンダーIDとプロダクトIDが全く同じで気がつきません。同じことがUSBシリアルのch341にも言えます。確かに便利なのですが・・・

Posted in Armbian, Linux | Comments Off on CSR4.0 BTドングルとLinux Kernel 5.7

中国製IPカメラ(SRICAM AP003)にOpenWrtを入れる

かなり以前にアマゾンで買ったIPカメラがあるのですが、中国製ということでどうもファームウェアが信用できない。特に使うこともないのですが、ファームウェアをOpenWrtにしてみました。中を開けてみるとRT5350Fというチップが乗ったモジュールが入ってました。これはRalinkのWifiがrt305xベースでポピュラーなSoCと同等です。それなのでOpenWrtのファームウェアのどれかに当てはまるはずです。 UARTポート まずはシリアルアクセスですが、どうもこのモジュールの基盤にはそれらしきものはありません。そこでこのモジュールに近い情報を集めてみました。 ほぼ基盤のレイアウトが同じでインターフェースのpin数が同じなので、この情報をもとにアクセスしてみました。何通りか試してみたら、UART_TXD2、UART_RXD2、GNDに57600 8N1、3.3Vでアクセスできました。 OpenWrtをSDRAMにロード Ralink製品はたいてい一度SDRAMにOpenWrtをロードしてから、susupgradeコマンド使ってROMに書き込みます。シリアルアクセスができるようになったので、ロードしてみました。 OpenWrtのファームウェアは色々試してみた結果、openwrt-18.06.8-ramips-rt305x-mzk-dp150n-initramfs-kernelがいいようです。このファームウェアをfile.binとリネームして、tftpのルートディレクトリに置きます。起動できたら、openwrt-18.06.8-ramips-rt305x-mzk-dp150n-squashfs-sysupgrade.binをscpで/tmpに転送してsysupgradeコマンドを実行してROMに書き込みます。 あとはOpenWrtの基本設定をすれば完成です。IPカメラなので残りにROMにドライバーを入れれば使えるようになると思われますが、勉強不足なので暇見てアップデートすることにしています。ffmpegで送信したいのですが、容量的にも性能的にも厳しい気がしてますが、どうでしょうか? IP Cameraを認識 OpenWrtが起動できるようになりIP Cameraに挑戦してみました。前回、使ったファームウェアは実は4MB用のモノだったので、openwrt-18.06.8-ramips-rt305x-wt1520-8M-squashfs-sysupgrade.binにしました。このファームウェアはSwitchがこのIP Cameraと同じなので一つのlanポートでWANとLANを分けることができます。 さて、本題でGoogleで検索してもこの型番にあった情報は見当たらなかったので、rt5350のデータシートを見みてヒントを探しました。OpenWrtではUSBのIP Cameraドライバーは結構豊富にあるで、このIP CameraもUSB経由で動いているのだろうと考えました。GPIOでも出力が可能なので、もしそうであればドライバーがないので詰みです。ドライバーが認識できれば/dev/video0というデバイスファイルができます。まず基本のパッケージをインストールします。 この時点ではデバイスファイルは出来ていません。データーシートではこのモジュールはUSB2なのでUSBを使えるようにパッケージを入れました。 USBデバイスを調べてみます。 Alcor Micro Corp.がIP Cameraのようです。デバイスファイルも出来ていました。そこでmjpg-streamerを立ち上げてみます。 Firewallでポート8080を開けてアクセスしてみます。IP/パスワードはデフォルトでoprnwrt/oprnwrtです。 VLCでストリーム再生する場合 スナップショットを撮る場合 録画する場合ですが色々調整したのですが、どうしても早送りになります。 Motion Detection motionパッケージをインストールすると動きを検知できます。motionをつかうにはOpenWrtのバージョンを19.07にあげないといけません。残念ながらこのIPカメラではメモリが不足して動きませんでした。 メッシュネットワーク化 最新のOpenWrtの11s+WPA3のメッシュネットワークに挑戦してみましたが、IFは立ち上がるのですがどうもうまくいきません。WPA2 Enterprise(TLS1.2)のSTAモードもダメなようです。それかWPA2 PersonalでSTAモードで接続するかになります。私のところではWPA2 Enterpriseと11s+WPA3なのでそれは選択外です。そこで以前やっていた11s+tincのメッシュネットワークにしました。11sはEncryption: Noneの設定なら古いSoCでもメッシュ化出来ます。 以上、IP CAMのOpenWrt化でした。 参考 https://openwrt.org/docs/guide-user/hardware/video/webcam https://downloads.openwrt.org/releases/18.06.8/targets/ramips/rt305x/packages/ … Continue reading

Posted in Linux, OpenWrt | Comments Off on 中国製IPカメラ(SRICAM AP003)にOpenWrtを入れる

Linux版VMware Playerのインストール

VirtualBOXの致命的欠点は、システムに負荷がかかると突然、書き込み禁止になることです。作業中のデーターが保存できないという悲劇が起こります。macOSは無料版がないのですがLinuxは無料版があるのでインストールしました。しかしインストールは簡単ではないようです。 カーネルモジュールがコンパイルできない これは検索したら次のスクリプトを実行します。 アドオンがインストールできない バージョンが一致したコンポーネントのTarファイルをVmwareがらダウンロードして拡張子componentがついたファイルを取り出します。

Posted in Linux | Comments Off on Linux版VMware Playerのインストール

POP OSのインストール

先日、TVBOXをUbuntu Focalにアップグレードしたのでラップトップも同様にアップグレードすることにしました。Peppermint LinuxのHPをみてみるとどうやらBionicとまりです。開発中とのことですが、いつになるのかわかりません。そこでPOP OSというのあったので、そちらをインストールすることにしました。POP OSはGNOMEベースのデスクトップです。インストールはmacOSがあるのでカスタムインストールします。さらにPOP OSはデフォルトでdm-cryptでシステム全体を暗号化します。カスタムインストールなので手動でcryptsetup及びLVM2を使ってパーティションを作ります。前バージョンと違いソフトバンクのペッパーくん似のインストーラーがすべて設定をめんどうみてくれるのでそのままインストールがすめば完了です。ところが一つ問題がありました。ブートローダーがGrubからrEFIndに変更になっています。EFIは/dev/sda1にあるのですが、500MBのディスクスペースを要求しているため、新たに作成することにしました。ところがインストールを終えてブートしてみるとLinuxしか起動できません。そこで検索して調べてみました。 refindのインストール rEFIndと相性のいいGUIブートローダーはrefindということでしたので、aptでインストールしました。とくに設定がなくてもCloverとLinuxを認識するようです。WindowsはmacOSのディスク容量が圧迫してきたので削除しました。ほとんどWindowsは使わないのでディスクの有効利用から削除したほうがよいと判断しました。一応macOSにVirtualBoxのWindows XPがあるので、万が一、ドライバー等でどうしてもWindowsを使わないといけないときはそちらを使うことにします。 refindは/boot/efi/EFI/refind/refind.confで設定します。とくに複雑な設定は無いようです。次のところを変更してみました。 ブートローダーをインストールします。 Dark Mode POP OSではmacOSのようなDark Modeが使えます。エクステンションを使って自動的に昼と夜にあわせて切り替えることが出来ます。 結論 Gnomeシェルは重いと言われますが、たしかに重いのですがThinkpad x230i(Core i3)では割とサクサクと動きます。メリットは今まで使ってきたXfce系のデスクトップより統一感があり悪くないなって感じです。デザインがどことなくMac風なので使い慣れると気にならないと思います。ほか変わった機能としてタイルモードというのがあり、開いているアプリケーションを自動的にタイル化するので全体を俯瞰しやすいですが、それは好みだと思います。

Posted in Linux | Comments Off on POP OSのインストール

Thinkpad X200にmacOS High Sierra VMを入れる

ThinkPad x200はSnow Leopard止まりですがVirtualBoxを使って入れられないか検索したところどうやらできそうだということがわかりした。そこでサイト通りにやったのですがやはり簡単には行きませんでした。まずMojave 10.14.6は入りません。インストーラーがHWチェックでエラーを出すのでインストールが完了できません。 そこでHigh Sierraなら入りそうなのでやってみることにしました。最初の難関はインストールディスクの賞味期限が切れていることです。それで次のようにホストPCのシステム時計を過去に戻します。 Install Diskの作成 参考のサイトの通りに作成します。 VirtualBox イメージの作成 これも参考のサイト通りに作成します。 x200ではこれだけだと動かないので次の設定を追加します。 VirtualBoxの設定 ゲストOSがUSBにアクセスできるようにするためにホストPCの設定です。 VirtualBox側の設定です。 マウスとキーボードはx200では厳しいものがあり、USB Tabletだとチャタリングを起こすときがあります。そうした場合、PS/2 Mouse設定で幾分改善されます。ネットワークは使えないと思うのですが一応設定しておきます。VirtualBoxのネットワークカードはインストールでエラーになるのでUSBIPを使います。もしUSBIPがなければ試してませんがスマホのUSBテザリングでもいけると思います。 VirtualBox 5.2(Ubuntu 18)の場合、インストールの途中でリブートしたときに、また振り出しに戻ります。それを避けるためにActivate Boot ManagerをCtrl+F12で起動します。詳しくは参考のサイトに書かれています。 Post Installation 解像度の設定をやってみたのですが無駄した。一応設定方法を書いておきます。 キーボードはもちろんThinkpadなので、x220で使ったKextを/L/Eにインストールします。 VoodooPS2Controller.kext IntelMausiEthernet.kext Kext Utility.appをApplcationsにインストールして実行します。 VirtualBoxのフルスクリーンモードにすると使いやすくなります。 参考 https://tobiwashere.de/2017/10/virtualbox-how-to-create-a-macos-high-sierra-vm-to-run-on-a-mac-host-system/ http://x220.mcdonnelltech.com/ https://osxdaily.com/2019/10/24/fix-install-macos-application-damaged-cant-be-used-error-mac/

Posted in Linux, macOS | Comments Off on Thinkpad X200にmacOS High Sierra VMを入れる

ThinkPad X230iのRefurbish

H6 TVBOXの他にThinkPad X220をメインに使っていますが、たまにメンテ等で使えない場合、サブ機のX200を使います。X200はCore2Duoでなんとか使えるのですが、Javascriptsを使ったサイトではかなりストレスを感じます。そこでサブ機用に中古X230iをヤオフクで、ジャンク扱いですがかなり破格の値段、2700円(米ドルで約25ドル)で手に入れました。HDDなし、メモリなし、一部天板が欠けている、キーボドの文字盤がいくつか消えているというもので、さらにバッテリーが正規品でないというエラーまででます。その他は至って正常でした。このジャンク品を使えるようにするのが今回の目的です。 HDDとメモリはX220で換装してあまったHDDと16GBのメモリを8GBづつ分けて使うことにしました。HDDとメモリをつけると無事ブートできました。Windowsはドライバーを自動的に再インストールするので特に問題はありませんでした。 BIOSのアップデート 一番の問題はBIOSのアップデートです。X230はWhitelistを外したMODBIOSがあり、それをアップデートすることで、WIFIモジュール、さらに正規外のバッテリーも使えるようになります。手順は次のとおりです。 正規BIOSのダウングレード ECファームウェアのアップデート UEFI BIOSのアップデート UEFI BIOSのバージョンがv2.77になるとロックがかかってECファームウェアをアップデートできないのとMOD UEFI BIOSもアップデート前のバージョンにシビアなので一旦、ダウングレードしておきます。 https://1vyra.in/ ECファームウェアはこのサイトに詳しく書かれているのですが、一つでも間違えると、それこそJTAGで復旧する以外手はなくリスクが大きいので、次のサイトからお手軽版を手に入れてアップデートしました。 最後に1vyraからダウンロードしたMODBIOSをアップデートします。 天板の修復 まず隙間をタバコフィルターで埋めて、その上にエポキシ系樹脂を充填します。 油性マジックで修復した部分を塗ってしまいます。車用の補修ペンがあればそちらのほうが尚いいでしょう。 以上でリファービッシュの完了です。パーツを買い揃えると却って高く付きますが手元にあるもので済ますことができれば格安のラップトップに変身です。WIFIモジュールも余っているブロードコムのパーツをインストールしたのでmacOSのCatalinaも入れて使えるはずです。

Posted in DIY, Linux | Comments Off on ThinkPad X230iのRefurbish

iSCSIとNetwork Manager

有線であればiSCSIをBoot時に有効できるのですが、Wi-Fiの場合はデスクトップ環境になってからWi-Fiが使えるようになるため工夫が必要です。Ready NASでiSCSIを使えるようにしているのですが、コマンドラインからの操作は煩わしい。検索してみるとRed HatのドキュメントでNetwork ManagerのdispatcherでiSCSIを有効化していたので、そのアイディアを使ってみることにしました。 Ready NASのiSCSIはFirmwareに組み込まれていて特殊のなのですが、基本は同じです。 bidirectional CHAPは設定しません。これはドキュメントがないのでユーザー名の設定方法がわからないためです。ログイン用のCHAPは設定します。 クライアント側ですが、詳しい設定は他のドキュメントにあるので割愛しますが、ログイン用の設定は、/etc/iscsi/nodes以下にあるdefaultを編集します。 Network Managerのdispatcher用のファイルを作成します。 実行パーミッションをつけてリブートします。

Posted in Linux, Networking | Comments Off on iSCSIとNetwork Manager

Proxy ArpとZeroconf

以前にProxy Arpを使ってゾーン分けをしてファイヤーウオールをした記事を書きましたが、Samba情報がProxy Arpで阻まれて得られない問題がありました。DNSならばDnsmasqのリレー機能を使えば出来ますがDNS以外は出来ません。Zeroconf機能を使えばSamba情報は得られるのですがOpenWrtで使えるZeroconfアクリケーションはいくつかあります。その中で調査した結果、Avahiがリレー機能があることがわかりました。次のように設定します。 /etc/avahi/avahi-daemon.conf [server] # host-name=foo # domain-name=local use-ipv4=yes use-ipv6=yes check-response-ttl=no use-iff-running=no deny-interfaces=mesh0 [wide-area] enable-wide-area=yes [publish] # publish-addresses=yes # publish-hinfo=yes publish-hinfo=no publish-workstation=no # publish-domain=yes # publish-dns-servers=192.168.1.1 # publish-resolv-conf-dns-servers=yes [reflector] # enable-reflector=no enable-reflector=yes reflect-ipv=no [rlimits] # rlimit-as= rlimit-core=0 rlimit-data=4194304 rlimit-fsize=0 … Continue reading

Posted in Linux | Comments Off on Proxy ArpとZeroconf