linuxがブートしなかったときはとにかく喋らせろ
本家ブログに書いたが中古PCを衝動買いした
そして kona linux 3.0をインストールしてみた
まあなんとか実用的に使える ¥3,240ですがw
インストールの詳細はもっとちゃんとした記事がググれば出てくるので、
linuxがブートしなかったとき
どうすればいいのか? について書いてみたい
最近のlinuxはライブCD(DVD)になってて、インストールしなくてもお試しができる場合が多い
ライブCD(DVD)の入手は雑誌の付録とかもあるけど、ネットからisoファイルDLして自分で焼く
まあCD作らずUSBメモリに入れてブートさせることもできるけど、そこはお好みで
(この辺はググれば出てくるので詳しく知りたい方は適当にググってください)
とにかく、isoファイルをブート可能なメディアに焼いてブートさせるのが第一関門
で、linuxがブートしなかったとき
だけど・・・・
ここでのlinuxがブートしないとは「ブートローダーはブートしてるけど、linuxカーネルが立ち上がってデスクトップ画面まで行かない」という意味で、biosからブートローダーが立ち上がらない場合は、biosのブートの優先順位のあたりをチェックください
とにかく・・・・
まずは、ブートローダー画面が出たら、そのまま待つでもなく、enterを押すでもなく
Tabを押す
すると、下に何やら出てくるので、quiet splash と書かれているところまでカーソルを動かし(普通にカーソルキーで動く)これを消す (普通にBSでもdeleteでも使えるはず)
その後、徐にEnterを押す
これで、ブートの過程を喋って(画面に出して)くれるので
何のエラーで止まったかがわかる
というわけである あとは、その情報からいろいろググってみれば、何とかなる(こともある)という話w
ちなみに自分の場合
- NECのLavie light
- kona linux 2.3 は普通にブートok
- kona linux 3.0 basix 3.0 KLUE 2.0 は3つともブートせず
- ただ、3つとも irqが何たら irqpollで試せ みたいなメッセージが出る
- TABキー押して オプションirqpollを書き込んでブート
- それでもブートせず
- TABキー押して オプションquiet splashを消してブート
- ズラズラとメッセージが出るが バックライトが何たらで止まる
- いろいろググって
- acpi_backlight=vendor をオプションに追加
- 無事起動^o^/
- kona linux 3.0 インストール
って感じでした
追記)今試したらirqpollはなくてもブートしました
少し戸惑うのは、最初キーボードはusキーボード配置になってるので = _ が刻印どおりでないってとこかもw
まあ、右側のキーを適当に押して(+shihtも試して)いけばそのうち出てくるから何とかなります
最後はインストール後のGRUB2の設定がややこしいけど、これもググって調べれば何とかなります(vi操作方法忘れてて困ったw)
仮想環境ではなくHDDに直接linuxインストールするのは本当に久しぶりでしたが、ブート周りはややこしいので、安いジャンクPC購入してwinを消して入れるというのが一番いいかも(失敗しても元が安いので)
linuxが実用的に使えれば、リサイクルショップのジャンクPCが宝の山に見えてくるから不思議w vista 2017年4月11日でサポート切れる⇒ジャンクPCw
MinGW+msysをUSBメモリに
自作のシストレツール(の一部)をUSBメモリに入れて持ち運べる(所謂portable化)しようとしてるので、まずはMinGW+msysをUSBメモリに入れてみる
正直ただコピーすればいいのだけど、2点だけゴニョゴニョしないといけない
を参考にしたのだけど
>常に同じフォルダにログイン
>msys.batの中でset HOME=/home/user等とする。
はそのまま採用するとして、
MinGWをMSYSの/etc/fstabを使ってマウント
をどうするか? の問題
要はUSBがどのドライブになるか予めわからないので絶対パスが不明という問題
先のリンク先は
MSYSの/etc/fstabを使ってマウントさせず、直接/mingwへ入れる事です。ドライブレターを含む絶対パスの指定ができないので、こうするのが一番楽です。一応fstabに「../../../../MinGW」のような書き方もできなくはありませんが、msysのフォルダ内ですべて完結させた方が便利です。
とあるので、やってみたのだが、なぜかうまくいかず
同じことをしてもブログネタにならないので、
- mklinkコマンドでシンボリックリンクを張ってみる
を思いつき、実行するも「このドライブでは実行できない」と怒られる
いろいろ情報求めていたら
が見つかる
もっとも、この記事はMSYSを使ってないのだけれども、
path %path%;%~dp0\bin
で、パスを通している
%~dp0をググって調べるとなるほどとわかって
echo %~d0/MinGW /mingw > .\etc\fstab
set HOME=/home/[username]
とmsys.batの頭で実行することで解決([username]は適当な名前に置き換えてください)
要は毎回fstabを作ってから起動するという仕組み
一応これでシストレツールをUSBメモリで持ち運べる土壌ができたはず
「PCがあればどこでもシストレ」を目指すw
SharpDevelopによるprotraのビルド
(追記9/19:現在は山の日問題に対応したver.2.2がリリースされています)
http://www.icsharpcode.net/OpenSource/SD/Download/
から
- Setup Download [13511 KB]
をとってきてインストール
こんなんできる
protoraのソース取ってきてzipを展開しておく(ダウンロードフォルダで展開してよい)
SharpDevelopを起動する
File→Open→Project/Solution
Protra.slnを開く
折角なのでReleaseに変更
Build→Build Solution
これでビルドできます
展開したprotraのソースのフォルダをエクスプローラで開いてbin\Release以下にできたものを入れ替えればok(念のためバックアップとって)
以上です
protraのビルド
(追記2019/11/28 本家ブログのprotara関連記事
追記終わり)
(追記2019/3/10 最新ソースは.NET Frameworkのバージョン4.7.2の開発ツールが必要で、この記事の方法ではビルドできないようです)
(追記9/19:現在は山の日問題に対応したver.2.2がリリースされています)
株価データの取得と保存にProtraを使っているが
山の日が原因でデータ更新ができない事態に・・・
しかし、ソースは修正されている
最新はr527(2016/8/14 8:04現在)であるのでソース取ってくる
r527 > tree > protra > trunk の順にクリック
エクスポート: でzipボタン
あとは展開してbuildだけど、マイクロソフト系の開発環境はよくわからん私
とりあえず、いろいろググって
の記事を参考に
今は、Microsoft Build Toolsに付属しています。 Microsoft Build Toolsは、Visual Studioから、コマンド ライン ビルドに必要なツールを抜き出したもので、無償で手に入ります。 インストール先はPrograms Files
直下にできるMSBuild
というフォルダーで、この中にcsc
も入っています。
とのことで、Microsoft Build Toolsを入手
で、ビルド方法ですが
ですが、当然パス通ってないのでフルパスで入れる必要あり
自分の環境では
"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild"
を実行すればokでした
後はbin\Debug以下にできたものを入れ替えればok(念のためバックアップとって)
あとで調べたら
Microsoft Build Toolsを入手しなくても既に入っていたようです(調べたら確かに)
追記)
単に"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild" を実行するとDebugオプション付でビルドされます
Release構成でビルドするには
"C:\Program Files (x86)\MSBuild\14.0\Bin\MSBuild" /p:Configuration=Release
とすればよいようです
あと、NAnt.buildのあるディレクトリへ と書きましたがMSbuildが読んでいるのはProtra.slnのようです
Tcl/Tkによるお手軽GUI(CUIを補助)
mingwでTcl/Tkがビルドできた話は前に書いたが
折角なので、一応ある程度使えるレベルにまでしてみた
まずはスクショ
メニューバー付くとちょっといい感じに
なので、シェル・コンソールから切り離されてはいない
どういうことかというと・・・・
まず、最初はshell scriput コマンド scr をコンソールから実行
scr
--------------------------------------------
echo from CUI to GUI by Tcl/Tk
./tcltk/scr.tcl
./@@@@
--------------------------------------------
./tcltk/scr.tcl がGUIの実体だけどその次に謎の@@@@を起動している
で
./tcltk/scr.tcl
-----------------------------------------
#!/mingw/bin/wish86.exe
proc cmdw {arg} {
exec echo $arg > ./@@@@
exit
}
proc cmdwl {arg} {
exec echo $arg > ./@@@@
exec echo scr >> ./@@@@
exit
}
proc cmdwl2 {arg1 arg2} {
exec echo $arg1 $arg2 > ./@@@@
exec echo scr >> ./@@@@
exit
}
proc slnmK3a {} {
exec echo cd ./Selenium > ./@@@@
exec echo echo cd ./Selenium >> ./@@@@
exec echo ./kabucom3a >> ./@@@@
exec echo echo ./kabucom3a >> ./@@@@
exec echo cd .. >> ./@@@@
exec echo scr >> ./@@@@
exit
}
wm title . "SU/CAR-ST-AP-cells"
wm iconbitmap . ./tcltk/pike32.ico
wm resizable . 0 0
image create photo stap -file ./tcltk/staps.gif
image create photo matsui -file ./tcltk/matsui_logo.gif
image create photo kabucom -file ./tcltk/logo-kabucom01.gif
image create photo firefx -file ./tcltk/firefox.gif
#button .bdl -text "DL" -command {exec cmd /C start http://k-db.com/stocks/}
#button .bpr -text "Prtr" -command {exec bash -c ./Protra/Protra.exe &}
button .bst -image stap -command {exec cmd /C start http://supercar.hatenablog.com/}
button .bmt -image matsui -command {exec cmd /C start https://www.deal.matsui.co.jp/ITS/login/MemberLogin.jsp}
button .bkc -image kabucom -command {exec cmd /C start https://s10.kabu.co.jp/_mem_bin/members/login.asp?/members/}
button .bkf -image firefx -command {exec bash -c firefox &}
button .b0 -text "Q buy" -command {cmdwl ./suQ/carbuy}
button .b1 -text "Q buy2" -command {cmdwl ./suQ/carbuy2}
button .b2 -text "R _now" -command {cmdwl ./suR/car_now}
#button .bsn -text "SlnmK3a" -command {slnmK3a}
button .b3 -text "Exit" -command {cmdw exit}
pack .b0 .b1 .b2 -side left -fill y
pack .b3 .bst .bmt .bkc .bkf -side right -fill y
menu .m -type menubar
. configure -menu .m
.m add cascade -label "Preparation" -underline 0 -menu .m.m1
menu .m.m1 -tearoff no
.m.m1 add command -label "Download" -underline 0 -command {exec cmd /C start http://k-db.com/stocks/}
.m.m1 add separator
.m.m1 add radiobutton -label "Protra" -underline 0 -command {exec bash -c ./Protra/Protra.exe &}
.m.m1 add separator
.m.m1 add command -label "Exit" -underline 0 -command {cmdw exit}
.m add cascade -label "systemQ" -underline 6 -menu .m.m2
menu .m.m2 -tearoff no
.m.m2 add command -label "Buy" -underline 0 -command {cmdwl ./suQ/carbuy}
.m.m2 add command -label "buy2" -underline 3 -command {cmdwl ./suQ/carbuy2}
.m.m2 add separator
.m.m2 add command -label "Output" -underline 0 -command {exec cmd /C start ./suQ/output/carall.txt}
.m add cascade -label "systemR" -underline 6 -menu .m.m3
menu .m.m3 -tearoff no
.m.m3 add command -label "Now" -underline 0 -command {cmdwl ./suR/car_now}
.m add cascade -label "Selenium" -underline 0 -menu .m.m4
menu .m.m4 -tearoff no
.m.m4 add command -label "Open" -underline 0 -command {exec cmd /C start ./Selenium/kabucom3a.csv}
.m.m4 add command -label "Kabucom3a" -underline 0 -command {slnmK3a}
---------------------------------------------
わかりますでしょうか?
時間のかかる処理は実行しないでechoで./@@@@にリダイレクトしているだけ
そして最後に scr を追加しそのままGUIプログラムを終了してる!
proc cmdwl {arg} {
exec echo $arg > ./@@@@
exec echo scr >> ./@@@@
exit
}
GUIプログラムは終了するけど、やるべき仕事は./@@@@に書いてあるので
最初のshell scriput コマンド scr に制御が戻った際に、./@@@@を実行してくれる
そして、./@@@@の最後にはscrが書いてあるので再びscrが起動し最初に戻る
という仕組み
トリッキーだけど結構便利なワザで、MS-DOS時代(1990年前半)に覚えた
メモリを食わないメニュープログラムが作れて重宝しました
GUI化してないコマンドはGUIを終了してコンソールからCUIで実行
GUI使いたいときはコンソールからscrとタイプすればいい
まあ、プロトタイプならありでしょ?
ユーザーは自分だけだしw
システムQに市場限定フラグ追加
久々にシステムに手を入れたので記録
ちなみにシステムは2つあって
ということなんだけど
ということで
- 旧システム システムQに改名
- 新システム システムRに改名
となりました(それがどうしたw)
で、システムQの方で
bin/data1000_200
----------------------------------------------------
ls -r ~/stockstr |head -1000 > ./data.cfg
./bin/picdaihhntr |sort |uniq > ./code/a.txt
# 除外コード処理 jjhishi.txt
cat ./code/bb.txt ./code/jjhishi.txt |sort |uniq > ./code/b.txt
rm ./code/bb.txt
cat ./code/a.txt ./code/b.txt | sort | uniq > ./code/all.txt
cat ./code/b.txt ./code/all.txt | sort | uniq -u > ./code/code.cfg
ls -r ~/stockstr |head -200 > ./data.cfg
# 共通な行を抜き出す
cat ./code/code.cfg ./code/T1.txt | sort | uniq -d > ./code/codeT1.cfg
---------------------------------------------------
./code/T1.txt に東証1部のcodeを羅列したものを準備しとけば
./code/codeT1.cfgを作ってくれる
以下は参考過去記事
まあ、sortとuniqの応用テク
bin/data1000 も忘れずに
----------------------------------------------------
ls -r ~/stockstr |head -1000 > ./data.cfg
./bin/picdaihhntr |sort |uniq > ./code/a.txt
# 除外コード処理 jjhishi.txt
cat ./code/bb.txt ./code/jjhishi.txt |sort |uniq > ./code/b.txt
rm ./code/bb.txt
cat ./code/a.txt ./code/b.txt | sort | uniq > ./code/all.txt
cat ./code/b.txt ./code/all.txt | sort | uniq -u > ./code/code.cfg
# 共通な行を抜き出す
cat ./code/code.cfg ./code/T1.txt | sort | uniq -d > ./code/codeT1.cfg
-----------------------------------------------
で、C言語ソースの方でこの./code/codeT1.cfgが使われるようにしないといけない
main/simxp8trsu_nobug.c
------------------------------------------------
:
int main (void) {
//2016/8/11 市場切り替え対応
#ifdef SHIJOU
char* c_cfg=SHIJOU;
#else
char* c_cfg=".\\code\\code.cfg";
#endif
//
:
-----------------------------------------
こうやっておけば、SHIJOUが定義されてれば、c_cfgを変えられる
(simxp7trsu_nobug.cも同様に)
で、
----------------------------------------------------
:
$1=="T1" {
# print "#define SHIJOU \".\\\\code\\\\T1.txt\""
print "#define SHIJOU \"./code/T1.txt\""
}
:
-----------------------------------------------------
これで
とルールを記述しとけば対象が東証1部onryになる
という仕掛け
まあ、メタプログラミング的な手法のおかげで仕様拡張がいろいろできて面白いなw
Tcl/TkをMinGWでビルド
開発中の自作シストレツールは基本的にshell scriptの寄せ集めで、完全にCUIなんだけど、自分で作ったコマンドの使い方とかすぐに忘れるので、簡単なGUIラッパーみたいなものを作りたい
JScript+HTAというのはやったことがあるのだが、なんか将来なくなりそうで(マイクロソフト次第)ちょっと・・・・
ということで、Tcl/Tk(よく知らんけどw)とかはどうだろうか?
レガシーで全然トレンドじゃないけど、意外にこういうものはなくならないし、どんな環境でも動作するような気がする(awkとかsedとかm4とかetc)
ここ↑から最新のものがDLできるが
nantonaku-shiawase.hatenablog.com
どうやらmingwでソースからビルドできるらしい
で、最新の8.6.6を取ってきてビルド
できたw 簡単
test.tcl
-------------------------------------------------
#!/c/mingw/bin/wish86.exe
button .b -text "su_/car" -command "exec bash -c ./su_/car"
pack .b
----------------------------------------------
で
こんなん出ましたw
ボタンをポチると買いシグナルを出すシステムが走る
うーん、ちょっと感動的w
しかし、ソースのtar取ってきて展開して自分でビルドって何年振りだろう?
1990年代(古い)にlinuxに嵌って、パソコン通信で ftpmail使って uuencode された(以下自粛)~
TclTkちょっと調べて使えるようになって、うちのシステムもGUI化を目指そう
高齢者はとことんレガシーで行こうw