• 無料なのに制限なし!すごい開発環境CoIDEを入れる

    ARM系CPUを開発するときにはいくつか選択肢があります、ただどれも基本的には有料です。例えばARM純正のMDK-ARMは無料だと32KByteまでしか使えません。 STM32F407の1MBもあるROMのうち殆どが使えないことになります。お金を払って買ってもいいのですが、ライセンスが複雑でAmazonでひょいっと買うことができません。

    無料の選択肢

    無料で無制限に開発をするには基本的には無料コンパイラであるGNU GCCを使うことになりますが、
    これを使うとしても主に2つ選択肢があります

    • Eclipseなどで自分で環境構築
    • CoIDEを利用する

    Eclipseなどを使って自分で構築するとWindowsに限らずMacなどでも開発できるようになります。
    ただ、もしあなたがWindowsを持ってるならCoIDEを使うのがいいと思います。
    制限のないIDEでCMSISも使うことができますし、デバッグもできてMDK-ARMにかなり近い使い心地です。
    それにWindowsのほうがSTMの出してる他の無料ツールも使えますからおすすめです。
    それではWindowsにCoIDEを入れてみます。

    GNU GCCをいれる

    まずコンパイラであるGNU GCCを入れます。 CoIDEの良い所の一つですが、この一般的なコンパイラを利用してくれるので癖が無いです。
    https://launchpad.net/gcc-arm-embedded/ここからダウンロードします。画面右側の.exeで終わるインストーラーを選んでダウンロードします。
    gccarm00

    ダウンロードが完了したら、ダウンロードしたインストーラーを起動します。起動したらセキュリティに関して聞かれるのでOKしましょう。

    gccarm0

    起動したらセキュリティに関して聞かれるのでOKしましょう。その次はインストール用の言語を聞かれるのでJapaneseにしてOKします。

    gccarm1

    するとウィザードが出てきますので「次へ」

    gccarm2

    ライセンスについて同意できる場合は(しないと進みませんが)「同意する」

    gccarm3

    次にインストール先を聞かれます。これはこのままでよいです。

    gccarm4

    次へを押すとインストールが始まります。

    gccarm5

    完了すると以下の画面になります。
    「Add path to environment varialble」はチェックが外れていると思います。
    チェックしなくても問題ないのですが、チェックしておいても問題にはならないのでチェックしておきました。どっちでもいいです。

    gccarm6

    「完了」を押すとインストールが終わります。
    次にCoIDEです

    CoIDEを入れる

    ダウンロードは
    http://www.coocox.org/software/coide.php
    ここです
    codeide00

    この右側のDownloadを押します。
    ダウンロードが終わったらダウンロードしたインストーラーを開きましょう。こちらもセキュリティについて聞かれますのでOKしてください。
    codeide0

    ちょっとおしゃれなインストーラーが起動します「Next」を押しましょう

    codeide1

    どこに入れるのかとショートカットを作るのかを聞かれます。そのままInstallします

    codeide2

    インストールは数分で完了します。

    codeide3

    完了したらこの画面になります。すぐに起動したい場合はこのチェクを入れたままFinishします。

    codeide4

    これでCoIDEが入りましたデスクトップにもIのマークのソフトが新しく入ったと思います。

    GCCパスの設定

    この段階でGCCがどこにあるのかCoIDEは知らないので設定する必要があります。
    CoIDEを起動してください。

    codeide5

    こんな画面になると思います。
    上にあるProjectのSelect Toolchain Pathを選んでください。

    codeide6

    するとディレクトリを選択する画面になります。このBrowseを押します

    codeide7

    フォルダー選択になります。
    さっきインストールしたGCCの場所を指定すればいいのですが、標準だと
    C:\ProgramFiles(x86)\GNU Tools ARM Embeded\バージョン\binとなります

    codeide8

    選択したらOKを押して保存します。これで設定は完了です!

    次回は早速プロジェクトを作ってプログラムをDiscoveryボードに書き込んでみます。
    シリーズへ戻る

  • STM32F4Discovery

    STM32F4 Discoveryでは、かなり強力なCPUであるSTM32F407GVをさくっと試すことができます。
    M-05313
    出展: 秋月電子

    STM32F407GVの特徴は

    • 32bitのCortex-M4 最高168Mhz動作
    • 1MBのフラッシュと 192KBのRAM
    • I2C: 3つ、UART: 4つ、SPI: 3つ、CAN: 2つ、SDIOあり、USB2.0あり、Ethernetあり

    となっています。
    このCPUが乗っているこのDiscoveryボードにはこのCPUを試すための幾つかのモジュールが載っています

    • 4つのLEDと1つのボタン
    • マイクとマイク回路、出力用のスピーカー用D級アンプ
    • 加速度センサ
    • そして、書き込み・デバッグ用のST-LINKV2

    M4の機能であるfloatの演算が早いのを試すためにマイクなどが付いてる感じかと思います。
    そして、Discoveryボードはすぐに開発が始められるよにデバッガであるST-LInkが標準で載っていますのでこのままWindowsに繋げば開発できます。また、ST-Linkの出力がピンになっていますので、ここから別のSTM32マイコンにケーブルを繋げばそっちも開発できます。(STMマイコンの開発ができるST-LInkを買ったのと同じことです。安いですよね)

    秋月電子で今2000円で購入できます
    http://akizukidenshi.com/catalog/g/gM-05313/

    早速STM32F4を試してみましょう!
    次回はこれ用の無料で無制限の開発環境を用意してみます
    シリーズへ戻る

  • iOS9でAudioUnitのSampleRateとBufferSizeがおかしい

    Xcodeを6から7にして、iOS9 SDKでビルドをすると何故かAVAudioSessionのSampleRateとIOBuffeerDurationの変更が効かない。

    元々やっていたこと

    RemoteIOを使っていて、スピーカー出力にこんな感じのcallbackを用意していた

    [objc]
    static OSStatus callbackFunction(
    void *inRefCon,
    AudioUnitRenderActionFlags *ioActionFlags,
    const AudioTimeStamp *inTimeStamp,
    UInt32 inBusNumber,
    UInt32 inNumberFrames,
    AudioBufferList *ioData) {
    OSStatus err = noErr;

    Obj *obj = reinterpret_cast<Obj*>((__bridge Obj *)inRefCon);

    AudioUnit unit = obj->_mixerUnit;
    err = AudioUnitRender(unit, ioActionFlags, inTimeStamp, 0, inNumberFrames, ioData);
    [/objc]

    そして、ここで受け取るbufferを決めるためにAudioSessionでこんな風に指定していた。

    [objc]
    AVAudioSession *session = [AVAudioSession sharedInstance];
    NSError *error = nil;
    BOOL success = NO;

    success = [session setCategory:AVAudioSessionCategoryPlayAndRecord error:&error];
    if(error || !success){
    NSLog(@"%@", error);
    }

    success = [session setPreferredSampleRate:44100.0 error:&error];
    if(error || !success){
    NSLog(@"%@", error);
    }

    error = nil;
    success = [session setPreferredIOBufferDuration:1024.0 / 44100.0 error:&error];
    if(error || !success){
    NSLog(@"%@", error);
    }

    [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
    if(error){
    NSLog(@"%@", error);
    }

    error = nil;
    success = [session setActive:YES error:&error];
    if(error || !success){
    NSLog(@"Activated Fail :%@", error);
    }

    [/objc]

    つまり、サンプルレートは44100でbufferは1024ずつ。
    さっきのcallbackのinNumberFrameはだいたい1024になるはず。
    だけど、iOS9だと(正確に言うと、iOS9のSDKが入ったXcode7でビルドすると)inNumberFrameが940か941になる。
    しかもSampleRateも44100でなく48000に勝手に切り替わる。
    別にSessionの設定でエラーが出るわけでもない。
    1つ分かったのがイヤホンを刺すと直る。抜くとまたダメになる。

    原因はOverrideSpeaker

    Sessionの初期化のタイミングとかSwiftから呼んでるからSwiftに移動したりとかいろいろ試したけど、結果として原因はこれ

    [objc]
    [session overrideOutputAudioPort:AVAudioSessionPortOverrideSpeaker error:&error];
    [/objc]

    これを呼ぶのをやめれば正しく動く。
    これが仕様なのかiOS9のバグなのかは不明だけど、呼ぶといきなりダメになる。
    スピーカーの出力は

    [objc]
    AVAudioSessionCategoryOptionDefaultToSpeaker
    [/objc]

    でも切り替えられるけど、こちらでも同じ。
    仕様書にこの辺の変更も書いてないし、動作としてはバグっぽいからそのうち治るとは思いますけどね。

  • RaspberryPi2上でQtをコンパイルする

    C言語でprintfと書いたらどのOSでもちゃんと文字が出ますが、ウインドウを出すとなるとそうは行きません。それぞれ用意されているAPIが違うからです。QtはLinuxやMacなどそれぞれの場合のウインドウ描画などのプログラムが入っていて、Qtを使ってプログラムを書けばどのOSでも同じプログラムで同じようなウインドウを表示するGUIのアプリを作ることが出来ます。

    Qtのサイト( http://www.qt.io )
    Screen Shot 2015-09-18 at 08.22.21

    当然、QtはRaspberryPiでも使うことが出来ます。
    Qtは普通コンパイル済みのライブラリとして配られていてはWindowsやMacなどはインストーラーで入れられるのですが、RaspberryPiなどのCPUがARM系のものはライブラリが配布されていないので(だいぶ前のバージョンならある)自分でQtのプログラムを持ってきてARM向けにコンパイルする必要があります。そしてコンパイルしたライブラリと連携する自分のソフトをかけばGUIのアプリが作れます。
    ただ、プログラムの量が多く、コンパイルにRaspberryPiB+でも2日程度かかってしまいます。そこで、CPUが4個も入っているRaspberryPi2でやってみましょう!僕の場合は5時間ちょいぐらいでコンパイルできました。

    Qtのサイトに載っていますのでそれを参考に進めます。この記事を書いたタイミングはQt5.5でした。
    https://wiki.qt.io/Native_Build_of_Qt5_on_a_Raspberry_Pi
    https://wiki.qt.io/Native_Build_of_Qt_5.4.1_on_a_Raspberry_Pi

    1. 必要な物を用意する

    [shell]
    sudo apt-get update
    sudo apt-get upgrade
    sudo apt-get install libfontconfig1-dev libdbus-1-dev libfreetype6-dev libudev-dev libicu-dev libsqlite3-dev
    sudo apt-get install libxslt1-dev libssl-dev libasound2-dev libavcodec-dev libavformat-dev libswscale-dev libgstreamer0.10-dev
    sudo apt-get install libgstreamer-plugins-base0.10-dev gstreamer-tools gstreamer0.10-plugins-good gstreamer0.10-plugins-bad
    sudo apt-get install libraspberrypi-dev libpulse-dev libx11-dev libglib2.0-dev libcups2-dev freetds-dev libsqlite0-dev libpq-dev
    sudo apt-get install libiodbc2-dev libmysqlclient-dev firebird-dev libpng12-dev libjpeg62-dev libgst-dev libxext-dev libxcb1 libxcb1-dev
    sudo apt-get install libx11-xcb1 libx11-xcb-dev libxcb-keysyms1 libxcb-keysyms1-dev libxcb-image0 libxcb-image0-dev libxcb-shm0
    sudo apt-get install libxcb-shm0-dev libxcb-icccm4 libxcb-icccm4-dev libxcb-sync0 libxcb-sync0-dev libxcb-render-util0
    sudo apt-get install libxcb-render-util0-dev libxcb-xfixes0-dev libxrender-dev libxcb-shape0-dev libxcb-randr0-dev libxcb-glx0-dev
    sudo apt-get install libxi-dev libdrm-dev
    [/shell]

    ここで、大本のサイトは1つのapt-getでライブラリを入れるようになっていますが、多すぎてうまくコピペ出来なかったので1行ごとに分割して行いました。
    (コピペに失敗するとこうなる
    E: Unable to locate package libsqlite3-dev libxslt1-dev
    E: Unable to locate package libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
    E: Couldn’t find any package by regex ‘libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev’
    E: Unable to locate package gstreamer0.10-plugins-bad libraspberrypi-dev
    E: Couldn’t find any package by regex ‘gstreamer0.10-plugins-bad libraspberrypi-dev’
    E: Unable to locate package libpq-dev libiodbc2-dev
    E: Unable to locate package libxcb1-dev libx11-xcb1
    E: Unable to locate package libxcb-shm0 libxcb-shm0-dev
    E: Unable to locate package libxcb-render-util0 libxcb-render-util0-dev
    E: Unable to locate package libxcb-glx0-dev libxi-dev
    )

    2. プログラムを持ってくる

    適当なディレクトリ(今回はホーム)に移動してソースコードを持ってきます。

    [shell]
    cd ~
    sudo apt-get install git
    git clone git://code.qt.io/qt/qt5.git
    [/shell]

    そして、必要な依存ファイルを持ってきます。./init-repositoryは20分ぐらいかかります。

    [shell]
    cd qt5
    ./init-repository
    [/shell]

    3. 設定を変更する

    コンパイル前にいくつか変更しておかなければならないものがあります。
    まず、./qtbase/configureを編集します。

    [shell]
    sudo nano ./qtbase/configure
    [/shell]

    800行目ぐらいにあるQT_CFLAGS_DBUS~QT_LIBS_GLIBあたりをこのようにします

    [shell]
    # flags for libdbus-1
    QT_CFLAGS_DBUS="-I/usr/include/dbus-1.0/ -I/usr/lib/arm-linux-gnueabihf/dbus-1.0/include/"
    QT_LIBS_DBUS=-ldbus-1

    # flags for Glib (X11 only)
    QT_CFLAGS_GLIB="-I/usr/include/glib-2.0/ -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include/"
    QT_LIBS_GLIB=-lglib-2.0
    [/shell]

    そしてその下にこれらを新しく追加します。

    [shell]
    QT_CFLAGS_PULSEAUDIO="-I/usr/include/glib-2.0/ -I/usr/lib/arm-linux-gnueabihf/glib-2.0/include/"
    QT_LIBS_PULSEAUDIO="-lpulse -lpulse-mainloop-glib"

    QT_CFLAGS_GSTREAMER="-I/usr/include/gstreamer-0.10/ -I/usr/include/glib-2.0/ -I/usr/lib/arm-linux-
    gnueabihf/glib-2.0/include/ -I/usr/include/libxml2/"
    QT_LIBS_GSTREAMER=
    [/shell]

    あと、それよりしたのQT_CFLAGS_FONTCONFIGに関する部分を編集します。

    [shell]
    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG –exists fontconfig –exists freetype2 2>/dev/null; then
    QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG –cflags fontconfig –cflags freetype2 2>/dev/null`
    QT_LIBS_FONTCONFIG=`$PKG_CONFIG –libs fontconfig –libs freetype2 2>/dev/null`
    else
    QT_CFLAGS_FONTCONFIG=
    QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
    fi
    [/shell]

    となっているところがあるかとおもいますが、
    QT_CFLAGS_FONTCONFIG=

    QT_CFLAGS_FONTCONFIG=-I/usr/include/freetype2/
    にします。

    [shell]
    if [ -n "$PKG_CONFIG" ] && $PKG_CONFIG –exists fontconfig –exists freetype2 2>/dev/null; then
    QT_CFLAGS_FONTCONFIG=`$PKG_CONFIG –cflags fontconfig –cflags freetype2 2>/dev/null`
    QT_LIBS_FONTCONFIG=`$PKG_CONFIG –libs fontconfig –libs freetype2 2>/dev/null`
    else
    QT_CFLAGS_FONTCONFIG=-I/usr/include/freetype2/
    QT_LIBS_FONTCONFIG="-lfreetype -lfontconfig"
    fi
    [/shell]

    こんな感じにね。
    そして、できたら保存してconfigします。これもちょっと時間がかかります。

    [shell]
    ./configure -v -opengl es2 -device linux-rasp-pi-g”+ -device-option CROSS_COMPILE=/usr/bin/ -opensource -confirm-license -optimized-qmake -reduce-exports -release -qt-pcre -make libs -prefix /usr/local/qt5 &> output
    [/shell]

    出力ファイルを指定しているので、consoleには何も出てこないと思いますが安心して下しあ。何か問題があればエラーは表示されます。
    また、結果を確認したい場合は outputファイルを開いてみてみてください。

    4. コンパイル

    コンパイルは5時間と31分かかりました。電源が切れないことを確認してください。また、sshから実行するとsshを5時間閉じれなくなるのでraspberryPi上からやるとよいでしょう。

    [shell]
    make -j 4 &> output_make
    [/shell]

    今回も出力ファイルを output_makeにしましたので完了するまで何も出てこないです。
    -j 4は並列に4つ作業するという意味で、CPUが4つなので4としました。
    エラーがなく完了していれば安心です。試しにtail output_makeでみてみると最後の3行は

    [shell]
    make[3]: Leaving directory ‘/home/pi/projects/qt5/qt3d/tools/qgltf’
    make[2]: Leaving directory ‘/home/pi/projects/qt5/qt3d/tools’
    make[1]: Leaving directory ‘/home/pi/projects/qt5/qt3d’
    [/shell]

    こんな感じになっていました。
    それでは、コンパイルが終わったので必要なヘッダやライブラリを共有スペースにコピーしましょう。

    [shell]
    sudo make install
    [/shell]

    5. 環境変数に追加する

    環境変数にqtの場所を教えましょう。
    環境変数をbashrcに入れます(bash_profileに入れるというのもあります)

    [shell]
    nano ~/.bashrc
    [/shell]

    ファイルの最後に以下を追加します。

    [shell]
    export LD_LIBRARY_PATH=/uer/local/qt5/lib/
    export PATH=/usr/local/qt5/bin:$PATH
    [/shell]

    そしたら、source ~/.bashrcでリロードするか sudo shutdown -r nowやsudo rebootで再起動しちゃいましょう。
    これでQtのコンパイルは完了です!

    6. 一回試してみる。

    サンプルのプログラムがQtに入ってますから、ちょっと試してみましょう。
    まずgitでもってきたqtのなかのサンプルディレクトリを開きます

    [shell]
    cd ~/qt5/qtbase/examples/opengl/cube
    [/shell]

    そしたらqmake(さっきコンパイルして作成されたQt用アプリの事前makeみたいなもの)とmakeをして実行します。

    [shell]
    qmake
    make
    ./cube
    [/shell]

    画面にサイコロが出てきてマウスなどで動かすことができたら成功です!

    2015-09-14 12.09.20

    ちなみにHDMIでなく、こういう外部ディスプレイでQtを(openGLをつかったものを)表示する場合はFBCBを使う必要があります。それは次回扱います。

  • 千石の4inchタッチディスプレイをRaspberryPi 2 につなぐ

    千石で売ってる4inchのタッチディスプレイがあります ( http://www.sengoku.co.jp/mod/sgk_cart/detail.php?code=EEHD-4R4Y# )
    これですね

    rpi2_display

    安くて、ちょうどRaspberryPiにあうので、早速これをRaspberryPi2で使いたいので、必要な設定を紹介します。いろんなサイトに載ってるのですが、新しいOSだと設定が変わっていて、結構違うので今の(2015年9月)最新の設定方法を載せます。

    1. SPIを有効にする

    SPIは標準で無効になってますが、液晶との通信につかうので有効にします。/boot/config.txtでかんりされてます。ついでにI2Cも有効にします。

    [shell]
    sudo nano /boot/config.txt
    [/shell]

    で開いたら

    [shell]
    dtparam=spi=on
    dtparam=i2c=on
    dtparam=i2c1=on
    dtparam=i2c_arm=on
    [/shell]

    を最後に追加(既にどこかに書いてあれば不要)
    (もし、今 sshでなく画面から直接raspberrypiいじってるなら  sudo raspi-config で AdvancedOptions->A6 SPI->SPI enable で有効にすることも出来る)
    一度再起動してみましょう。

    [shell]
    sudo reboot
    [/shell]

    ちゃんとSPIが使えるようになってるかデバイスのログで確認します。

    [shell]
    dmesg | grep spi
    [ 4.267650] bcm2708_spi 3f204000.spi: DMA channel 2 at address 0xf3007200 with irq 77
    [ 4.287179] bcm2708_spi 3f204000.spi: DMA channel 4 at address 0xf3007400 with irq 20
    [ 4.333979] ads7846 spi0.1: touchscreen, irq 497
    [ 4.349000] input: ADS7846 Touchscreen as /devices/platform/soc/3f204000.spi/spi_master/spi0/spi0.1/input/input2
    [ 4.372183] bcm2708_spi 3f204000.spi: SPI Controller at 0x3f204000 (irq 80)
    [ 4.384192] bcm2708_spi 3f204000.spi: SPI Controller running in dma mode
    [/shell]

    2. FBTFTドライバのインストール

    液晶用のドライバをインストールしてもう一度再起動します(しなくても続けられますが、気になる人は念のため)

    [shell]
    sudo REPO_URI=https://github.com/notro/rpi-firmware rpi-update
    sudo reboot
    [/shell]

    3. フレームバッファの変更

    映像出力をHDMIからLCD出力へ切り替えます(/dev/fb0を/dev/fb1にする)

    [shell]
    sudo nano /usr/share/X11/xorg.conf.d/99-fbturbo.conf
    [/shell]

    でファイルを開いて以下のようにfb1にします。

    [shell]
    Section "Device"
    Identifier "Allwinner A10/A13 FBDEV"
    Driver "fbturbo"
    Option "fbdev" "/dev/fb1"
    Option "SwapbuffersWait" "true"
    EndSection
    [/shell]

    4. touchscreeの関連パッケージのインストール

    [shell]
    sudo apt-get install xinput evtest libts-bin
    [/shell]

    5. Module情報の更新

    /etc/modulesにつながってるモジュールに関して記載できます。ここに液晶とタッチデバイスについて書きます。

    [shell]
    sudo nano /etc/modules
    [/shell]

    でひらいたら

    [shell]
    snd-bcm2835
    flexfb width=480 height=320 regwidth=16 init=-1,0xb0,0x0,-1,0×11,-2,250,-1,0x3A,0x55,-1,0xC2,0x44,-1,0xC5,0x00,0x00,0x00,0x00,-1,0xE0,0x0F,0x1F,0x1C,0x0C,0x0F,0x08,0x48,0x98,0x37,0x0A,0x13,0x04,0x11,0x0D,0x00,-1,0xE1,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0xE2,0x0F,0x32,0x2E,0x0B,0x0D,0x05,0x47,0x75,0x37,0x06,0x10,0x03,0x24,0x20,0x00,-1,0×36,0×28,-1,0×11,-1,0×29,-3

    fbtft_device debug=3 rotate=0 name=flexfb speed=16000000 gpios=reset:25,dc:24
    [/shell]

    このようにします

    6. /boot/cmdline.txt

    [shell]
    sudo nano /boot/cmdline.txt
    [/shell]

    にて、中身をこのようにします。これは全部1行で改行なしです

    [shell]
    dwc_otg.lpm_enable=0 console=ttyAMA0,115200 console=tty1 root=/dev/mmcblk0p2 rootfstype=ext4 elevator=deadline rootwait fbtft_device.custom fbtft_device.name=flexfb fbtft_device.gpios=dc:24,reset:25 fbtft_device.bgr=1 fbtft_device.speed=16000000 fbcon=map:10 fbcon=font:ProFont6x11 logo.nologo dma.dmachans=0x7f35 console=tty1 consoleblank=0 fbtft_device.fps=50 fbtft_device.rotate=270
    [/shell]

    7. configにTouchデバイスを教える

    Touchデバイスに関しての設定をします。

    [shell]
    sudo nano /boot/config.txt
    [/shell]

    でconfigファイルを開いたら以下の行を最後に追加します。

    [shell]
    dtoverlay=ads7846,cs=1, penirq=17, speed=1000000, swapxy=1
    [/shell]

    これが重要です。ここが古いOSだと違うけど、新しいのはここでads7846を指定しないといけない

    8. タッチデバイスのキャリブレーション

    タッチの位置を調整します。

    [shell]
    sudo nano /usr/share/X11/xorg.conf.d/99-calibration.conf
    [/shell]

    にて(ファイルがすでにある場合は削除)

    [shell]
    Section "InputClass"
    Identifier "calibration"
    MatchProduct "ADS7846 Touchscreen"
    Option "Calibration" "3900 240 3900 240"
    EndSection
    [/shell]

    これで完了です。あとは便利な設定をしておきましょう

    9. 自動ログイン

    パスワードを聞かれないようにします。

    [shell]
    sudo nano /etc/inittab
    [/shell]

    にて

    [shell]
    1:2345:respawn:/bin/login -f pi tty1 </dev/tty1>/dev/tty1 2>&1
    [/shell]

    のコメントアウトを外します。

    10. X自動起動設定

    [shell]
    sudo nano /etc/rc.local
    [/shell]

    にて
    su -l pi -c startx
    を中身に追加してこんな風にします。

    [shell]
    _IP=$(hostname -I) || true
    if [ "$_IP" ]; then
    printf "My IP address is %s\n" "$_IP"
    fi

    su -l pi -c startx

    exit 0
    [/shell]

    11. 再起動

    [shell]
    sudo reboot
    [/shell]
    これで全部完了です。再起動すればディスプレイに映像が出て、画面タッチも使えるようになります