diff --git a/_posts/2021-12-04-beginner-get-started.md b/_posts/2021-12-04-beginner-get-started.md index 9e27b82..c57c46d 100644 --- a/_posts/2021-12-04-beginner-get-started.md +++ b/_posts/2021-12-04-beginner-get-started.md @@ -11,6 +11,7 @@ excerpt: "" + # はじめに このページでは、SHARP Brain で Linux を動かす試みから生まれた Linux ディストリビューション **Brainux** を手軽に起動する方法をご紹介します。 @@ -61,34 +62,34 @@ macOS もしくは Linux をお使いの場合は、ZIP を展開して取り出 2. "Flash from file" をクリックし、ダウンロードした ZIP ファイルを選択します - - 展開する必要はありません + - 展開する必要はありません - + - + 3. "Select target" をクリックして書き込み先を選択します - - 正しい SD カードを選択しているか慎重に確認してください - - 4GB 以上の SD カードであればなんでも使用可能です - - SD カードの性能がシステムの使用感に直結するため高速な SD カードを使用することをおすすめします - - 画像では 8GB の SD カードを選択しています + - 正しい SD カードを選択しているか慎重に確認してください + - 4GB 以上の SD カードであればなんでも使用可能です + - SD カードの性能がシステムの使用感に直結するため高速な SD カードを使用することをおすすめします + - 画像では 8GB の SD カードを選択しています - + - + 4. "Flash!" をクリックして書き込みます - - 改めて正しい SD カードが選択されているか確認した上で書き込んでください - - 書き込みには管理者権限が必要なため管理者パスワードを入力します + - 改めて正しい SD カードが選択されているか確認した上で書き込んでください + - 書き込みには管理者権限が必要なため管理者パスワードを入力します - + - + - + 5. 完成! @@ -102,8 +103,8 @@ macOS もしくは Linux をお使いの場合は、`dd` コマンドでも書 ### macOS の場合 - - macOS では `/dev/disk*` に書き込むと非常に遅いため `/dev/rdisk*` を使用します - - どのディスクが SD カードかはディスクユーティリティを使用して確認します +- macOS では `/dev/disk*` に書き込むと非常に遅いため `/dev/rdisk*` を使用します +- どのディスクが SD カードかはディスクユーティリティを使用して確認します 以下に実行例を示します。バージョン番号は適宜読み替えてください。 @@ -136,15 +137,16 @@ sudo dd if=~/Downloads/sdimage-2021-02-21-162410.img of=/dev/sdc bs=10M Brain における Linux の動作はまだ初期段階であり、一部のハードウェアしか利用できません。 + ## キーボード (Sx1, Sx2) キーが非常に少ない Brain のキーボードで必要な記号を打つため、キーボードの使用方法は特殊になっています。キートップに記載されたキー以外の文字は、すべて「記号」キーと「シフト」キーを組み合わせて入力します。 Shift キー・Ctrl キー・Alt キーは現実のキーボードに近い配置として以下のように対応させています。 - - Shift → 「シフト」 - - Ctrl → ページアップキー(《 を横に倒した記号のキー) - - Alt → 「文字切り替え」キー +- Shift → 「シフト」 +- Ctrl → ページアップキー(《 を横に倒した記号のキー) +- Alt → 「文字切り替え」キー キーと入力される文字のマップを以下に示します。 diff --git a/_posts/2021-12-04-linux-build.md b/_posts/2021-12-04-linux-build.md index b39b6b1..0c22cf3 100644 --- a/_posts/2021-12-04-linux-build.md +++ b/_posts/2021-12-04-linux-build.md @@ -10,6 +10,7 @@ excerpt: "" # 動作環境 + - Debian 10 (Buster) - Ubuntu 20.04 LTS @@ -17,6 +18,7 @@ excerpt: "" # 依存関係のインストール + 以下のコマンドで依存関係をインストールします。 ```sh @@ -25,14 +27,16 @@ sudo apt install build-essential bison flex libncurses5-dev gcc-arm-linux-gnueab # Gitリポジトリのクローン + 以下のコマンドでGitリポジトリをクローンして、必要なファイルをダウンロードします。長い時間がかかるので、時間のあるときに行いましょう。 -``` +```sh git clone --recursive https://github.com/brain-hackers/buildbrain.git ``` # Linuxのビルド + 1. `cd buildbrain` で `buildbrain` ディレクトリに入ります。 2. `make ldefconfig` を実行して、 `.config` ファイルを作成します。 @@ -41,6 +45,7 @@ git clone --recursive https://github.com/brain-hackers/buildbrain.git # Brainuxのビルド + Linuxのカーネルの準備ができたら、カーネルの上で動くアプリケーションを用意して、Linuxディストリビューションを完成させます。 1. バックグラウンドで `make aptcache` を実行します。 @@ -51,22 +56,23 @@ Linuxのカーネルの準備ができたら、カーネルの上で動くアプ ## パッケージの追加方法 (任意) + 追加で欲しいパッケージを `./tools/setup_debian.sh` の51行目あたりに追記します。 実際に追記した例を以下に示します。 ```diff - 42 apt install -y dialog sudo \ - 43 libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev \ - 44 xserver-xorg xserver-xorg-video-fbdev xserver-xorg-dev xorg-dev x11-apps \ - 45 openbox obconf obmenu \ - 46 weston xwayland \ - 47 bash tmux vim htop \ - 48 midori pcmanfm lxterminal xterm gnome-terminal fonts-noto-cjk \ - 49 dbus udev build-essential flex bison pkg-config autotools-dev libtool autoconf automake \ - 50 python3 python3-dev python3-setuptools python3-wheel python3-pip python3-smbus \ - 51 resolvconf net-tools ssh openssh-client avahi-daemon -+ 52 apt install -y fbterm uim-fep uim-mozc + 42 apt install -y dialog sudo \ + 43 libjpeg-dev libfreetype6 libfreetype6-dev zlib1g-dev \ + 44 xserver-xorg xserver-xorg-video-fbdev xserver-xorg-dev xorg-dev x11-apps \ + 45 openbox obconf obmenu \ + 46 weston xwayland \ + 47 bash tmux vim htop \ + 48 midori pcmanfm lxterminal xterm gnome-terminal fonts-noto-cjk \ + 49 dbus udev build-essential flex bison pkg-config autotools-dev libtool autoconf automake \ + 50 python3 python3-dev python3-setuptools python3-wheel python3-pip python3-smbus \ + 51 resolvconf net-tools ssh openssh-client avahi-daemon ++ 52 apt install -y fbterm uim-fep uim-mozc ``` [SD カードへのコピー](/linux/linux-copy-sd-card/)に続く… diff --git a/_posts/2021-12-04-linux-copy-sd-card.md b/_posts/2021-12-04-linux-copy-sd-card.md index f24b2ee..3a91d52 100644 --- a/_posts/2021-12-04-linux-copy-sd-card.md +++ b/_posts/2021-12-04-linux-copy-sd-card.md @@ -9,20 +9,24 @@ excerpt: "" --- -# 注意! +# 注意 + ***この手順を実行すると、SDカードの内容が消去されます。必ずバックアップをしてから実行しましょう。*** # 前提 + - [U-Boot のビルド](/u-boot/u-boot-build/)にてU-Bootをビルドしていること - [Linux のビルド](/linux/linux-build/)にてLinuxをビルドしていること # パーティションを区切る + 先頭に100MBくらいのFAT32のパーティションを作り、残りをext4のパーティションにします。 ## GPartedのインストール + 以下のコマンドで GParted をインストールします。 ```sh @@ -31,16 +35,19 @@ sudo apt install gparted ## パーティションを作成する + LinuxをインストールするSDカードをPCに挿入してGPartedを起動します。 ### GPartedの起動 + ![GParted起動画面](/assets/images/Launch-GParted.png) GPartedの右上のメニューからSDカードを選びます。容量で選ぶとわかりやすいです。 ### パーティションの削除 + ![パーティションの削除](/assets/images/partition-delete.png) ***この手順を実行すると、SDカードの内容が消去されます。必ずバックアップをしてから実行しましょう。*** @@ -49,6 +56,7 @@ GPartedの右上のメニューからSDカードを選びます。容量で選 ### パーティションの作成 + まず、FAT32のパーティションを作成します。 "未割り当て" のパーティションを右クリックして "新規" をクリックします。 ![新規パーティションの作成のダイアログ](/assets/images/create-partition-fat32.png) @@ -69,12 +77,11 @@ GPartedの右上のメニューからSDカードを選びます。容量で選 # 必要なファイルをコピーする -1. `buildbrain`ディレクトリの中からファイルをコピーします -- `linux-brain/arch/arm/boot/zImage` -- `linux-brain/arch/arm/boot/dts/imx28-[機種名].dts` +1. `buildbrain`ディレクトリの中から以下ファイルをSDカードのFAT32パーティションへコピーします -これらをSDカードのFAT32のパーティションへコピーします。 + - `linux-brain/arch/arm/boot/zImage` + - `linux-brain/arch/arm/boot/dts/imx28-[機種名].dts` 2. ターミナルを起動して `cd buildbrain` で `buildbrain` ディレクトリに入ります diff --git a/_posts/2021-12-04-linux-xorg.md b/_posts/2021-12-04-linux-xorg.md index 403204b..d459415 100644 --- a/_posts/2021-12-04-linux-xorg.md +++ b/_posts/2021-12-04-linux-xorg.md @@ -18,6 +18,7 @@ PW-Sx7 までは SoC に GPU が載っておらず、framebuffer (fbdev) のみ 設定ファイル xorg.conf の内容を以下に示します。vi か nano を使って以下の内容を `/etc/X11/xorg.conf` に書き込んでください。 + ``` Section "Device" Identifier "device" @@ -28,6 +29,7 @@ Section "Screen" Device "device" EndSection ``` + # 起こし方 diff --git a/_posts/2021-12-04-roadmap.md b/_posts/2021-12-04-roadmap.md index 0093e39..6c1dabd 100644 --- a/_posts/2021-12-04-roadmap.md +++ b/_posts/2021-12-04-roadmap.md @@ -33,8 +33,8 @@ excerpt: Brainux が自分の電子辞書にどれくらい対応しているか # 画面開閉検知 - - 開閉イベントの伝達はキーイベントと同じ経路を辿る - - キーボードの実装に依存する +- 開閉イベントの伝達はキーイベントと同じ経路を辿る +- キーボードの実装に依存する |キーボードの世代|対応済|説明| |:--|:-:|:--| @@ -46,37 +46,37 @@ excerpt: Brainux が自分の電子辞書にどれくらい対応しているか # 音 - - Brain に内蔵されているスマートアンプには大きく分けて Yamaha 系と Rohm 系がある - - 録音も再生も2021年2月23日現在解析中で非対応 +- Brain に内蔵されているスマートアンプには大きく分けて Yamaha 系と Rohm 系がある +- 録音も再生も2021年2月23日現在解析中で非対応 # タッチパネル - - 2021年2月23日現在反応はするが位置がおかしい - - 世代によるハードウェアの差分は不明 +- 2021年2月23日現在反応はするが位置がおかしい +- 世代によるハードウェアの差分は不明 # 電源コントローラー - - 2021年2月23日現在未対応のため充電状態の表示などは一切不可 +- 2021年2月23日現在未対応のため充電状態の表示などは一切不可 # cpufreq - - CPU のクロック制御は2021年2月23日現在なし +- CPU のクロック制御は2021年2月23日現在なし # eMMC への Linux インストール - - 研究中 +- 研究中 # Wi-Fi Wi-Fi の接続は複数の手法が提案されていて、現在検証中。 - - SDIO Wi-Fi チップ - - USB ドングル +- SDIO Wi-Fi チップ +- USB ドングル # LCD diff --git a/_posts/2021-12-04-tips-otg.md b/_posts/2021-12-04-tips-otg.md index e528be6..e3543e4 100644 --- a/_posts/2021-12-04-tips-otg.md +++ b/_posts/2021-12-04-tips-otg.md @@ -13,12 +13,12 @@ excerpt: 動作可否が確認されたケーブルの一覧 Brainux の初期状態では、USB コントローラーはホストとして動作するようになっています。OTG ケーブルを使用すると好きなデバイスを接続することができます。Brain 自身は VBUS (5V) を供給する能力はないので、電源が別途供給可能な OTG ケーブルを使用する必要があります。 - - [RouteR RUH-OTGU4](https://amz.run/4Kue) - - [AINEX USB-120R](https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-5EHA) - - [CY 90度左右角度付きMicro USB 2.0 OTGホストアダプター](https://amz.run/4LXg) +- [RouteR RUH-OTGU4](https://amz.run/4Kue) +- [AINEX USB-120R](https://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-5EHA) +- [CY 90度左右角度付きMicro USB 2.0 OTGホストアダプター](https://amz.run/4LXg) # 使えない USB OTG ケーブル一覧 - - [Easi-Cable](https://amz.run/4KqD) +- [Easi-Cable](https://amz.run/4KqD) diff --git a/_posts/2021-12-04-tips-swap.md b/_posts/2021-12-04-tips-swap.md index dff08d1..8a8990a 100644 --- a/_posts/2021-12-04-tips-swap.md +++ b/_posts/2021-12-04-tips-swap.md @@ -22,20 +22,20 @@ Brain の DRAM は 128MB しかないので、簡単にメモリが食いつぶ 今回の例では、256MB(これ以上を推奨)の領域を確保しています。他の容量にしたい場合は適宜 `bs` や `count` の値を変えてください。 - ``` + ```sh dd if=/dev/zero of=/swapfile bs=1M count=256 chmod 0600 /swapfile ``` 2. スワップ領域を初期化します - ``` + ```sh mkswap /swapfile ``` 3. スワップ領域を有効にします - ``` + ```sh swapon /swapfile ``` diff --git a/_posts/2021-12-04-tips-touch-panel.md b/_posts/2021-12-04-tips-touch-panel.md index 9da0f83..655bf2e 100644 --- a/_posts/2021-12-04-tips-touch-panel.md +++ b/_posts/2021-12-04-tips-touch-panel.md @@ -11,29 +11,35 @@ excerpt: タッチパネルのキャリブレーション(Brainux に同梱さ --- - # 事前に + Xorgの設定ファイル ( xorg.conf )を設定していない場合は、下記のWikiを参照して設定してください。 [Xorg](/linux/linux-xorg/) + # 必要なパッケージのインストール -``` + +```sh apt install xserver-xorg-input-evdev xinput-calibrator ``` + を実行して、必要なパッケージをインストールします。 + # Xorgとopenboxの起動 -``` + +```sh Xorg & -``` -``` openbox-session & ``` + を実行して、Xorgとopenboxを起動します。 + # タッチパネル補正ツールの起動 -``` + +```sh xinput_calibrator ``` @@ -41,10 +47,12 @@ xinput_calibrator ![xinput-calibratorの画面](/assets/images/xinput-calibrator.png) + # 補正する + 画面上の 赤い十字 を**丁寧に** 4回タッチすると、補正用の設定項目が端末に出力されます。 -``` +```plaintext Setting calibration data: 0, 4095, 0, 4095 Calibrating EVDEV driver for "mxs-lradc-ts" id=6 current calibration values (from XInput): min_x=0, max_x=4095 and min_y=0, max_y=4095 @@ -59,19 +67,21 @@ xinput_calibrator Option "Calibration" "147 3618 3826 350" Option "SwapAxes" "0" EndSection - ``` +``` + # 設定ファイルを作成・保存する + `/etc/X11/xorg.conf.d`を作成します。 -``` +```sh mkdir /etx/X11/xorg.conf/d ``` xinput_calibratorの出力に従って、`/etc/X11/xorg.conf.d/99-calibration.conf`に `Section "InputClass"` から `EndSection`までの行を nano や vi を用いて書き出します。 -``` +```plaintext Section "InputClass" Identifier "calibration" MatchProduct "mxs-lradc-ts" @@ -80,17 +90,18 @@ xinput_calibratorの出力に従って、`/etc/X11/xorg.conf.d/99-calibration.co EndSection ``` + # Xorgの再起動 -``` + +```sh pkill Xorg -``` -``` Xorg & -``` -``` openbox-session & ``` + でXorgを再起動します。 + # 完成 + ![ちゃんとタッチした場所にカーソルが来ています](/assets/images/calibrator-done.gif) diff --git a/_posts/2021-12-04-tips-usb-ethernet-gadget.md b/_posts/2021-12-04-tips-usb-ethernet-gadget.md index 63c288c..9a54cd4 100644 --- a/_posts/2021-12-04-tips-usb-ethernet-gadget.md +++ b/_posts/2021-12-04-tips-usb-ethernet-gadget.md @@ -11,7 +11,6 @@ excerpt: PC と USB ケーブル1本で接続できる便利な仕組みとそ --- - # USB Gadget とは? コンピューターがあたかも USB デバイスであるかのように振る舞う仕組みです。 @@ -31,36 +30,27 @@ excerpt: PC と USB ケーブル1本で接続できる便利な仕組みとそ 1. SDカードの第1パーティションを`/boot`にマウントします - ``` + ```sh sudo mount /dev/mmcblk1p1 /boot ``` 2. 元のdtsをバックアップします {機種名の数字}は適宜置き換えてください。(例:PW-SH5→imx28-pwsh5.dtb) - ``` + + ```sh sudo cp /boot/imx28-pwsh{機種名の数字}.dtb /boot/imx28-pwsh{機種名の数字}.dtb.orig ``` 3. dtbファイルをテキスト形式に変換します - ``` + ```sh dtc -I dtb -O dts /boot/imx28-pwsh{機種名の数字}.dtb > dts 2> /dev/null ``` -## コピペ用 - -1〜3の手順をまとめると以下のようになります。 - -``` -sudo mount /dev/mmcblk1p1 /boot -sudo cp /boot/imx28-pwsh{機種名の数字}.dtb /boot/imx28-pwsh{機種名の数字}.dtb.orig -dtc -I dtb -O dts /boot/imx28-pwsh{機種名の数字}.dtb > dts 2> /dev/null -``` - 4. 設定を書き換えます - ``` + ```sh nano dts ``` @@ -70,92 +60,102 @@ dtc -I dtb -O dts /boot/imx28-pwsh{機種名の数字}.dtb > dts 2> /dev/null ```diff ahb@80080000 { - usb0: usb@80080000 { - pinctrl-names = "default"; - pinctrl-0 = <&usb0_id_pins_a>; - vbus-supply = <®_usb0_vbus>; - - dr_mode = "host"; - + dr_mode = "peripheral"; - status = "okay"; - }; + usb0: usb@80080000 { + pinctrl-names = "default"; + pinctrl-0 = <&usb0_id_pins_a>; + vbus-supply = <®_usb0_vbus>; + - dr_mode = "host"; + + dr_mode = "peripheral"; + status = "okay"; + }; }; - ``` + 書き換えられたら保存してエディタを終了します。`Ctrl+O`の次に`Enter`を押して保存して、`Ctrl+X`で終了します。 5. 編集したものをバイナリ形式に変換します - ``` + ```sh dtc -I dts -O dtb dts > dtb 2> /dev/null ``` - ``` + ```sh sudo mv dtb /boot/imx28-pwsh{機種名の数字}.dtb ``` 6. SDカードの第1パーティションアンマウントします - ``` + ```sh sudo umount /boot ``` 7. 再起動します - ``` + ```sh sudo reboot ``` + ## コピペ用 +1〜3の手順をまとめると以下のようになります。 + +```sh +sudo mount /dev/mmcblk1p1 /boot +sudo cp /boot/imx28-pwsh{機種名の数字}.dtb /boot/imx28-pwsh{機種名の数字}.dtb.orig +dtc -I dtb -O dts /boot/imx28-pwsh{機種名の数字}.dtb > dts 2> /dev/null +``` + 5〜7の手順をまとめると以下のようになります。 -``` +```sh dtc -I dts -O dtb dts > dtb 2> /dev/null sudo mv dtb /boot/imx28-pwsh{機種名の数字}.dtb sudo umount /boot sudo reboot ``` + # Brain に Ethernet Gadget を喋らせる 1. 以下のスクリプトを vi や nano でホームディレクトリに保存します - ``` + ```sh #!/bin/sh - g=/sys/kernel/config/usb_gadget/eth + g=/sys/kernel/config/usb_gadget/eth - mkdir ${g} + mkdir ${g} - mkdir ${g}/functions/rndis.rn0 - echo "8a:15:8b:44:3a:02" > ${g}/functions/rndis.rn0/dev_addr - echo "8a:15:8b:44:3a:01" > ${g}/functions/rndis.rn0/host_addr + mkdir ${g}/functions/rndis.rn0 + echo "8a:15:8b:44:3a:02" > ${g}/functions/rndis.rn0/dev_addr + echo "8a:15:8b:44:3a:01" > ${g}/functions/rndis.rn0/host_addr - mkdir ${g}/configs/c.1 - ln -s ${g}/functions/rndis.rn0 ${g}/configs/c.1/ + mkdir ${g}/configs/c.1 + ln -s ${g}/functions/rndis.rn0 ${g}/configs/c.1/ - echo "ci_hdrc.0" > ${g}/UDC + echo "ci_hdrc.0" > ${g}/UDC - sleep 1 - ifconfig usb0 up sleep 1 - dhclient - ``` + ifconfig usb0 up + sleep 1 + dhclient + ``` 2. スクリプトに実行属性を付けます ここではスクリプト名を `gadget.sh` としています。1. で保存した名前に置き換えてください。 - ``` - $ chmod +x gadget.sh + ```sh + chmod +x gadget.sh ``` 3. 実行します 次回起動時からはこのスクリプトを都度実行します。 - ``` - $ ./gadget.sh + ```sh + ./gadget.sh ``` diff --git a/_posts/2021-12-04-tips-web-browser.md b/_posts/2021-12-04-tips-web-browser.md index ee7191e..eed0661 100644 --- a/_posts/2021-12-04-tips-web-browser.md +++ b/_posts/2021-12-04-tips-web-browser.md @@ -10,7 +10,6 @@ excerpt: Brainux で利用可能な Web ブラウザについて --- - # グラフィカルブラウザ **グラフィカルブラウザを使うのは困難です!** PW-Sx7 までの Brain が搭載している SoC は初代 Raspberry Pi のクロック周波数の約半分の速度で動作し、メモリ容量も半分以下の 128MB しかありません。つまり、インターネットブラウジングは現実的ではありません。例えば、[極めて高速に表示されることで有名な著名人のサイト](http://abehiroshi.la.coocan.jp/)の表示に実測15秒ほどかかります。また、Twitter は表示不可能です。 @@ -20,9 +19,10 @@ excerpt: Brainux で利用可能な Web ブラウザについて 代表的な軽量なブラウザの選択肢に Midori があります。Brainux にはプリインストールされています。Xorg が起動している状態で、以下のコマンドを実行すると Midori が起動します。 - ``` - $ DISPLAY=:0 midori - ``` +```sh +DISPLAY=:0 midori +``` + ## Surf diff --git a/_posts/2021-12-04-u-boot-build.md b/_posts/2021-12-04-u-boot-build.md index 220c9a5..b5c60b0 100644 --- a/_posts/2021-12-04-u-boot-build.md +++ b/_posts/2021-12-04-u-boot-build.md @@ -10,6 +10,7 @@ excerpt: "" # 動作環境 + - Debian 10 (Buster) - Ubuntu 20.04 LTS @@ -17,10 +18,12 @@ excerpt: "" # 環境の構築 + [Linux のビルド](/linux/linux-build/)の頁で既に構築している場合は飛ばします。 ## 依存関係のインストール + 以下のコマンドで依存関係をインストールしてください。 ```sh @@ -29,20 +32,22 @@ sudo apt install build-essential bison flex libncurses5-dev gcc-arm-linux-gnueab ## Gitリポジトリのクローン + Gitリポジトリをクローンして、必要なファイルをダウンロードします。長い時間がかかるので、時間のある時に実いましょう。 -``` +```sh git clone --recursive https://github.com/brain-hackers/buildbrain.git ``` # U-Bootのビルドとnk.binの作成 + 1. `cd buildbrain` で `buildbrain` ディレクトリに入ります 2. `make udefconfig-sh*` を実行して、 `.config` ファイルを作成します - - PW-Sx1のとき: `make udefconfig-sh1` - - PW-Sx5のとき: `make udefconfig-sh5` + - PW-Sx1のとき: `make udefconfig-sh1` + - PW-Sx5のとき: `make udefconfig-sh5` 3. `make ubuild` を実行して `u-boot.sb` を生成します