コケッココケッコ

コケコッコー

Raspberry pi 2 をsshで接続できるようにする

概要

Raspiをssh接続できるようにしたい。

想定する環境

Windows7Ethernet PortとラズパイのEthernetポートに接続されている。

Windows 7 <=> Raspberry Pi 2

インターネット共有を利用し、Raspiにネット接続を提供する

windows側のインターネット共有をONにする

ネットワーク接続→共有したい接続を右クリック→プロパティ

共有タブの、「ネットワークのほかのユーザーに、...」をクリックし、ホームネットワーク接続に、共有先の接続を選択し、OK

raspi側のIPを固定化する

/etc/network/interfacesをいじる。

raspi側のIPは、192.168.137.2とした。

auto lo
iface lo inet loopback

auto eth0
allow-hotplug eth0
iface eth0 inet static

address 192.168.137.2
netmask 255.255.255.0
gateway 192.168.137.1


auto wlan0
allow-hotplug wlan0
iface wlan0 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

auto wlan1
allow-hotplug wlan1
iface wlan1 inet manual
wpa-conf /etc/wpa_supplicant/wpa_supplicant.conf

ラズパイ2にLinuxをインストールする

概要

ラズパイ2にLinuxをインストールする方法を述べる

手順

OSをインストールする方法がいくつか用意してある。

今回は、OSインストーラーであるNOOBSを利用する

NOOBSのインストール

NOOBS LITEのzipを落とし、NOOBS_lite_v1_4_1.zipを解凍しておく

www.raspberrypi.org

SDカードをFATでフォーマットする

SD Formatterをインストールする

SD Card Formatter - SD Association

SD Formatterを起動し、オプションの論理サイズ調整をONにし、microSDをフォーマットする

NOOBS LITEをMicroSDに書き込む

解凍したNOOBS LITEの中身をmicroSDにコピーする

Linuxをインストールする

microSDをラズパイに挿入し、ラズパイを起動する

Raspbianをインストールする

参考

www.raspberrypi.org

www.raspberrypi.org

Raspberry Pi 2 Model Bを手に入れた

概要

組み込みOSの勉強に当たり、@ftakeさんに相談した。 ラズパイを買ってみていじってみるとよいとのことだったので、Raspberry Pi 2 Model Bを購入した

f:id:niwatolli3:20150701210416j:plain

Raspberry Pi 2 Model B

Raspberry Pi 2 Model Bの仕様

  • CPU: ARM Cortex-A7 900MHz
  • RAM: 1GB
  • USB: 4ポート
  • GPIO: 40ピン
  • HDMI
  • Ethernet
  • 3.5mmオーディオジャックとコンポジット
  • カメラインターフェース(CSI)
  • ディスプレイインターフェース(DSI)
  • MicroSDカードスロット
  • VideoCore IV 3D graphics core

ARMv7を搭載しているので、Linuxが動くようだ

どうやらMicroSDにOSを入れる必要があるらしいので、次の記事に記載する。

参考

https://www.raspberrypi.org/products/raspberry-pi-2-model-b/

福岡旅行(6/26~6/28)

概要

6/26(金)~6/28(日)の3日間、福岡旅行へ行ってきた。

彼女が熊本在住ではあるため熊本へ帰省しようとも思ったが、デートで行き尽くしてしまったため福岡旅行に決定~

先々週まで帰省予定はなかったが、彼女が帰ってきてと強く嘆願されたためと、私自身も会いたかったので帰省することにした。

以下に1日毎の詳細を記す。

6/26(金) 久留米へ&誕プレ交換

爆速退社し、羽田空港へ向かう。

18:00あたりのフライトで福岡へ。

20:00福岡着。彼女と合流し、西鉄等を利用し久留米駅へ。

久留米駅周辺のイタリアンで、スパークリングワイン(白)で乾杯、その後ホテルへ。

渡せてなかった誕プレを交換。ブランド品をプレゼントとして選んでいたことを聞いていたため、ティファニーのネックレスをプレゼント。

めっちゃ喜んでくれてほっとした。

6/27(土) 久留米散策&土曜夜市

とりあえず近くにある石橋美術館へタクシー利用でGo!

ブリッジストンに縁のある美術館のようだ。庭園に色とりどりのお花が咲き乱れており、うっとりした気分になった。将来このような庭園が欲しい。

画家のパレットを見ることができることが売りなのかな?想定していたパレットの使い方と違っていたので勉強になった。色ごとに若干のスペースを開けてあるかと思ったが、スペースがないだと。。

別館へも行き、帰ろうとすると雨!タクシーを呼んで傘をさしてホテルに帰る。

しばらく寝て起きてからの、ホテル付近のおしゃれなお店で15:00頃乾杯。先日飲んだスパークリングがメニューに掲載されていたが、ここはスルーして「キウイのブランデー」を注文

からの~、甘いもの(パフェ)をパクパク。

f:id:niwatolli3:20150629223320j:plain

ライブの練習が室内で行われていた。トランペットの音色、ピアノの音色、アーティストの透き通る歌声にうっとりした。

その後お店を出てホテルへ戻る。

数時間スヤスヤと眠って~、夜ご飯を食べに外出。

つくね横丁という興味をそそるお店に目をつけていたので来店。

つくね、焼鳥、ビールを注文。つくね横丁というだけあって、つくねはおいしかった。

ちょっと離れたお客さん(おっさんと若い娘)の声が聞こえてきて楽しめた。

そんなこんなで外へ出ると、商店街は子連れで溢れかえっていた。

なんと、土曜夜市が開催されていた。

f:id:niwatolli3:20150629224706j:plain

ご飯も食べたしやることないよね~、そうや、ゲーセンだ!

ゲーセンでクレーンゲーム(クレーンというよりカッターを横方向縦方向に移動させて紐をカットするやつ)をプレイするもまったく刃が立たず。

諦めて、太鼓の達人をプレイして帰ることに。

自身はやっぱり諦めきれなかったので、プレイ動画を見て勉強してから、一人でゲーセンへ。

3,000円を投入するも、クレーンゲームもどきで1個もアイテムが取れなかった。悔しかったので、お菓子をすくって、2段式で動くチョコ落としゲーをプレイ。チョコを手に入れてホテルに帰る。

6/28(日) 久留米からキャナルシティ博多からの帰省へ

久留米からラーメン屋「だるま」へ

ホテルを10時にチェックアウトし、ラーメン屋「だるま」へ向かう。

だるま開店30分前に到着したが、行列ができていたのでとりあえず並ぶことに。

f:id:niwatolli3:20150629224811j:plain

暑い中30分ほど待った後に店内へ。

店内を見渡すと壁面は色紙でびっしり。有名店を伺わせる好感触。

f:id:niwatolli3:20150629224958j:plain

f:id:niwatolli3:20150629225016j:plain

1日数量限定販売を頼むしかないと思い、炙りとろ肉チャーシュー麺に味玉トッピングを注文。

f:id:niwatolli3:20150629225100j:plain

f:id:niwatolli3:20150629225850j:plain

細麺のとんこつで、あっさりしていた。味玉が美味しいと同期に伺っていたが、割りと普通においしかった。

チャーシューはとろけるような柔らかさで食が進んだが、枚数が多すぎて数枚残してしまった。

ごちそうさま!

その後、キャナルシティ博多へ。

キャナルシティ

キャナルシティでは、31アイスをベンチで食べた。音楽にあわせて噴水が上がる様は、一体感を生んでいたように思う。

とりあえずおみやげをたくさん購入。5000円オーバー。

その後、若干の亀裂があったがタリーズへ。タリーズカードの有効期限が切れそうだったのと甘いモノが食べたかった。

博多駅へ向かう途中で「えびすや うどん」を発見!

人が多すぎるのとビルが分かれていてお店の位置がわかりづらかったキャナルシティを離れ、博多駅へ向かう。

博多駅へ向かう途中で、U-1グランプリ 2014 準優勝を獲ったど~の「えびすや うどん」を発見!迷わずIN!

f:id:niwatolli3:20150629225805j:plain

どうやら「カルビぶっかけうどん」でグランプリをとったようなので、彼女が注文(自身はお腹いっぱい)

f:id:niwatolli3:20150629225830j:plain

自身も少しいただいた。お肉のおいしさに感動し、麺のおいしさに二度感動。これで2ndなら1stはどんな味がするんだろうと想像してしまった。

こんなにおいしいうどんを食べたのは初めて。リピ決定!

お腹が満たされたところで博多駅

博多駅

やることないなぁということでネカフェへ向かうもやることがなくなったため、ホテルからの福岡空港

福岡空港から自宅へ

福岡空港からフライト~からの自宅へ到着。おみやげで荷物がかさんだのでバスからのバス乗り継ぎでお疲れモード

バタンキュ~

リアルモードからプロテクトモードへの移行

概要

ブートローダーでCPUをリアルモードからプロテクトモードに切り替える。

CPUは、CR0レジスタの最下位ビットが0であればリアルモードで動き、1であればプロテクトモードで動く。

ただし、プロテクトモードへ移行するためには、プロテクトモードが必要とするテーブルやレジスタを設定しておく必要がある。

手順

GDTの作成

セグメントをどのように切るかに依存する。

64bitモードのセグメントは、セグメントのベースとリミットの値は無視され、必ずフラットモデルで扱われるようなので、フラットモデルを採用したほうが無難だと思われる。

0から作るOS開発 カーネルローダその2 プロテクティッドモードとGDT

GDTレジスタの設定

GDTRの設定は下記を参照:

0から作るOS開発 カーネルローダその2 プロテクティッドモードとGDT

IDTの作成

IDTの作成は、protect mode移行後でもできる?

IDTレジスタの設定

IDTの作成は、protect mode移行後でもできる?

A20のマスク解除

マスク解除はいくらかの方法があるらしい。

  • キーボードコントローラから制御する(キーボードコントローラのポートに空きがあったからという理由らしい。なんでキーボードやねん)
  • System Control Portから制御
  • BIOSの割り込みを使う

参考:gate A20

CPUへの割り込み禁止

CLIを使えばいい

CR0レジスタの最下位ビットを1にする

MOV EAX, CR0
OR  EAX, 0x01
MOV CR0, EAX

パイプラインの内容をフラッシュ

JMP命令を使うと、命令パイプラインがフラッシュされるらしい。

セグメントレジスタの設定

SS,CS,DS,ES,GS等を設定

参考文献

リアルモードとプロテクトモード

概要

CPUをリアルモードからプロテクトモードへ移すことは、ブートローダの役割となっている。 ここでは、参考文献を元に、リアルモードとプロテクトモードについて簡単に記す。

リアルモードとは

リアルモード(実モード、実アドレスモード)は、8086用に書かれたプログラムを実行させるためのものである。

PC/AT互換機は、電源投入後やリセット後はリアルモードで動作する。

特徴

  • アクセス保護機能がない
  • メモリの実アドレスを指定する
  • 16bit

メモリ空間

20bit(0x00000 ~ 0xFFFFF までの1MB)。これは、8086のアドレスバスが20本しかないため。

プロテクトモードとは

プロテクトモード(保護モード)とは、メモリ管理、タスク管理、保護機能などを利用するためのモード。

ほとんどのx86OSはプロテクトモードで動作する。

特徴

  • アドレス保護機能がある
  • プログラムは許可されたアドレス範囲外のメモリやI/Oにアクセスすると、CPUは割り込みを発生してOSに通知する。Linuxであれば、Segmentation Faultが発生する。
  • ページングとアドレス変換機能がある
  • 仮想メモリをサポート
  • 32bit

メモリ空間

32bit (0x00000000 ~ 0xFFFFFFFF までの4GB)

参考文献

ブートローダは何をやっているのか

概要

ブートローダーが何をやっているのかよくわからないので、書籍を購入した。

タイトルを見る限り、ブートローダーの動作からカーネルまで説明されてるっぽい。