初心者もOK! FreeBSD質問スレッド その123
■ このスレッドは過去ログ倉庫に格納されています
FreeBSD 関連の質問はここでどうぞ. 望んでいる回答が来なくても怒らないでね.
事前にハンドブック閲覧や過去ログ検索等の自助努力をすることが望ましいです.
分からなければ仕方がないので, 初心者でもとりあえず質問してみて下さい.
トラブルの場合, 再現性情報(ハードウェア・ソフトウェア・エラーメッセージ)の記載は必須.
sysutils/sysinfo あたりがおすすめ
名前欄に !id:on でIDが出ます
IDが無いと誰が誰だか分からないので必要に応じてIDを表示させて下さい
The FreeBSD Project
http://www.freebsd.org/ja/
FreeBSD ハンドブック
http://www.freebsd.org/doc/ja/books/handbook/
前スレ
初心者もOK! FreeBSD質問スレッド その122
https://mevius.5ch.net/test/read.cgi/unix/1486758875/l50 自殺をしたら、地獄に落ちて苦しむか、生前よりもさらに辛い状態で生まれてくるか、
生前にクリアできなかった課題と全く同じ課題をクリアするために、
再び生まれてくることになるのでしょうか? rootでも日本語入力を使うかもと思い設定していたのを思い出して.xinitrcをみたら あ り ま し た
fcitx -r -d
fcitx
mozc restart
と何やらわけのわからんことをすると書き込みができるようになりました
どこでどうググったのかも記憶からすっ飛んでますが結果オーライってことで
今日も飲んでますがもう消しませんw 長い上に自分もよくわかっていなくてとりとめがなくてすみません
1.高機能で使いやすいデバッグ環境。例外を多用したコードやx86/AMD64混合コードのデバッグも支援してくれる
2.メモリマップに関するドキュメント
3.メモリ管理周りのAPIに関するドキュメント
4.例外処理に関するドキュメント
あたりを用意したいです
やりたいことは32bit組み込みシステム(非x86)用コードの簡易的なデバッグです
アプリケーション本体はAMD64で32bit越えのアドレス空間を確保して4GBより後ろにロード。ワークRAMも同様に4GBの後ろに確保
デバッグ対象である実機用のコード(x86)は実機と同じアドレスにロード、デバッグコード用のワークRAMも実機と同じアドレスに確保
実機のI/O(メモリマップドI/O)はページ違反例外の捕捉やmmap(ユーザーコードとメモリアクセスをリンクさせる方法とかないんですかね)でエミュレート
I/O周りのエミュレートが何とかなるならデバッグ用のコードを別プロセスとして実行しデバッガをアタッチでも可(暴走等に強くなる)
みたいなことができないかなと
リンカ・ローダ実践開発テクニック
ttps://shop.cqpub.co.jp/hanbai/books/38/38071.html
を読んで思いました(この本はFreeBSDで実験している)
仮想メモリ空間を持つOS上の方が強力な保護能力を得られますし、実機でデバッグするより使えるツール類も豊富なはず・・・と考えたのですが
具体的にどのような環境を構築すればいいのかよくわかりません。最初自分がよく使うWindowsでの構築を検討したのですがメモリマップが不明なことと
VSのリンカでロードするアドレスを変更したりする方法がわからなかったので中断しています。デバッガが豊富なのは魅力なのですが
FreeBSDで構築するとどんな感じになるのでしょうか・・・
扱う情報量的にもGUIは必須?デバッガは何が良い(gdbは有名くらいしか知らない)?技術的なドキュメント類はどこにある?
FreeBSDを動かした経験がないわけではないけどCLI止まりだしプログラム開発でバリバリ使ったこともないので細かいところは全然わからないです よくわかんないけど、実機がx86で組込みシステムが非x86で、
それぞれOSがどうなってて、メモリがどれだけ種類があって、
どんな言語で開発して、結局どのコードがデバッグ対象なのか、
みたいなところがわけわからなくなったので、ついていってない。
よくわかんないけど、QEMUでエミュレートする環境を作るんだろうか。
でも例外バリバリとかできるかどうかもよく知らない。 わかりにくくてすみません
デバッグ用のマシンはAMD64を予定でOSは未定、デバッグ対象である組み込みシステムは非x86でOSなし
言語はRust/C/アセンブラあたりになりそう
デバッグ対象は組み込み向けとして下位4GB内で走るx86コード。この部分をx86としている理由は実機とビット長を
あわせた方がソースコードレベルの互換性が高まると考えたためです
あくまで簡易デバッグでありソースコードレベルで期待した動作をしているか確認することが目的で、機械語レベルの
デバッグは実機でやります
実行空間はOSがアプリケーション向けとして提供してくれる仮想メモリ空間を使えないかなと あとデバッグしたいコードは組み込みシステムで使用するコードのうちマルチメディアデータを扱う部分考えています
GUI周りと画像や音声データなどを扱うコードです
実機だと大容量のデータを流し込んでその結果をキャプチャしたりするのは純正のデバッグシステムがあっても容易じゃないので
PCでやった方が楽なんじゃないかと考えました その簡易でバッグっていう余分なステップを踏む必要はあるのかなあ。
それによって何を期待できるの?
実機とはコードが違うのに多用する例外まで確認できるようなものなの? リアルタイムでないとデバッグできない部分以外の処理はソースコードレベルで意図した動作をする状態にしたいです
全部一気に書いて関連するデータも用意してほぼ一発で動かすとか自分ではほぼ無理・・・
処理単位に分けて実装、デバッグしてある程度完成度を高めてから合わせないと出来上がる気がしないです
かといってPCみたいにハードウェアが高度に抽象化されているわけではないのでI/Oレジスタへのアクセスもあるていど
シミュレーションできるとより好ましいです
例外というのはたとえば組み込みシステムのI/Oがマッピングされているアドレスを未割り当てにした状態で
そこへアクセスするとメモリアクセス違反例外が発生しますよね。これをトラップして適切に処理し復帰させると
デバッグ対象のコードからするとあたかもI/Oレジスタがマッピングされているように見せかけることができそうだと考えました
この部分は自分がそう思いついただけでよりスマートな方法があるのかもしれませんが FreeBSD-11.2-R の環境に、USB-LANを2つ付けています。
普段は、USB-LAN(1)が ue0、USB-LAN(2)が ue1 となるのですが、
希に、ue0 と ue1 が逆になってしまうことがあります。
固定することは可能でしょうか? 何をした時に逆になるの?ソレをしなければよさそうなものだが ifconfig name を実行してお好みの名前をつけるように devd.conf に書けばできるんでは。 同じデバイスだと識別できなかったような気が…できるのかな >>129
devd.conf の条件だけで完全に特定する必要はないよ。
ともかくコマンドが実行されるようにできれば、
それをシェルスクリプトにして、渡されたデバイスのMACアドレスをみてつける名前を決めるとかすればいい。 初心者向けのサイトとか本があればおしえて欲しい
解像度が高すぎて文字がみえないんだけどどこから設定できますか ハンドブック英語版が初心者にも優しく詳しさも随一。
あと、ここにはエスパーはいないので、初心者もOKだけど質問は限りなく詳細に。 多分UEFI起動でvtコンソールだよね? フォントが /usr/share/vt/fonts にあるから例えば
vidcontrol -f /usr/share/vt/fonts/gallant
とかするとそのフォントが使われます。 gallant より terminus-b32 か vgarom-16x32 の方が大きかった。 ありがとうございます
コマンドをいれたらできました vidcontrol -i mode で出てきた数字をvidcontrolに渡せば解像度を変えられるはず UEFIなvtだとそれやっても何も出てこなくない? +-------------------+ +---------------+
| Windows 10 | | FreeBSD 11.2|
| +--------------+ | | |
| |VirtualBox | | | |
| |FreeBSD 11.2| | ppp | |
---+-|em0 em1|-+-----+ pppd |
| | pppoed | | | |
| +--------------+ | | |
+-------------------+ +----------------+
VirtualBoxのFreeBSDでpppoedを起動すると
# /etc/rc.d/pppoed start
Starting pppoed
.:pppoe-829: Cannot LISTEN on netgraph node: File exists
で起動に失敗しますが、失敗の原因がさっぱり分かりません。
そもそも上記のような構成は構築可能でしょうか? >>146
↓こゆこと?
FreeBSD11.2R i386 を運用中ですが、amd64 へ切り替えるにはクリーンインストールするしかないですか?
freebsd-update のようにバイナリだけ差し替える方法はないものでしょうか? >>147
ありがとうございます。正にその図の通りです。
PPP接続試験環境を構築したいんです。
図左のPCにFreeBSD 10.4 UEFI版をインストールしWindows10と
マルチブート環境を構築しようとしたのですが、インストール後、
FreeBSDを起動する方法が分からず、VirtualBoxで接続試験環境を構築できないかな?
と考えた次第です >>146
自己レスです。起動失敗の原因は既にpppoedが起動していたからでした。
/etc/rc.d/pppoed stop で、プロセスが停止しないことが原因でした。
しかしVirtualBox上での接続はまだ実現していません。 >>150
em0の線の先にはdhcpサーバ機能付きのインターネットルータがあるんよね?
それでもし
「ルータのローカル側の接続口がひとつしかなくて、
幸いwin10プリインストール機にはlanアダプタが2個あるので
それをつかってFreeBSD機とwin機を(ハブを買い足すことなく)常時接続したい」
というのであれば、vitrualboxとpppはやめて
win機をブリッジ動作させればいいのではと思うんだけど >>152
>『PPP接続試験環境を構築したいんです。』
ちなみにem0の先は、
OCN ---(ppp)--- FreeBSD 8.3 --- em0
この古すぎる FreeBSD 8.3 の交代機の試験環境構築が目的です。
vitrualboxは、疑似OCN。 やはりそうですかね。
10.4Rから11.2R に上げたタイミングでPhantomjsがx86だけ動かなくなったので、amd64に上げるか迷っているのですが、もう暫く様子を見てみます。 >>153
あぁppp使用ありきでしたか
自分はpppは経験ないのでここから先は他の人に任せたいですが
virtualboxのホスト=win、ゲスト=FreeBSDでルーター構築は何回かやったので2点だけ
・virtualboxのゲスト別設定→ネットワーク→アダプター→高度→プロミスキャス
を一時[すべて許可]に変更
・winホストのセキュリティーソフトのファイアウォールが動いてるなら一時off へのレス
がヘルスに見えてしまった、膿んでいるのか 多少不安定でもいいので最新のGNOMEが使えるFreeBSDエディションってありませんかね。 今ある3.28じゃなく3.31を使いたいってこと?
自分でコンパイルすればいいんじゃなかろうか。
あとbugzillaに投げれば完璧。 >>160
そうです。
バグ報告ができるほどスキル高くないんで
そういうエディションがないならあきらめます。
FreeBSDのGNOMEフレーバーとか誰か作ってくれないかなぁ(他力本願) 1FD(くらいに収まる)FreeBSDって今のバージョンで作れないん? 超昔はpicobsdあったけど、その後出てきたnanobsdはiso前提。
今もnanobsdあるか、あったとしてビルドできるかは知らない。
ports見てみて。 portsじゃなくて、ベースシステムにあるな
man picobsdとman nanobsd 最近、firefox起動中に、forefox hogeとやってもhogeを開いてくれなくなったのですが、
俺環の問題でしょうか?
症状としては、firefox起動中にfirefoxを起動すると、30秒くらい黙った後に
JavaScript error: jar:file:///usr/local/lib/firefox/omni.ja!/components/XULStore.js, line 60: Error: Can't find profile directory.
とstderrに出て、ダイアログウィンドウで
Firefox is already running, but is not responding. To open a new window, you must first close the existing Firefox process, or restart your system.
と表示されて、OKするとstatus 0で終了します。
元のfirefoxはそのまま動いています。
環境は11.2-RELEASE-p4です。
プロファイルを全削除しても同じです。
firefoxとfirefoxが依存しているpkgを強制再インストールしてみましたが同様です。 最近のFreeBSDをMBRディスクにマルチブートでインストールするときの条件や手順ってどこかにありませんか?
ググってもGPTディスクだったり古いバージョンだったりして参考にならないです
とりあえずやったこと
Win7、Win8.1が入っているディスクにFreeBSD11.2-R i386をインストール→再起動
起動しない→ググる。最近のはboot0を書き込まないらしいとの情報を見つける
fdisk -B -b /boot/boot0 /dev/ada0
でboot0を書き込む→FreeBSDを選択しても#が出るだけで起動しない Win95 の頃と同じように mbm で Win10 とデュアルブートできているが Windowsのブートメニューをmsconfigで編集するとFreeBSDパーティションのブートローダに処理を渡せるんじゃなかったっけ
記憶がめちゃくちゃ怪しいけど >>169,170
ありがとう。とりあえず起動までこぎ着けた 誤って libexec/ld-elf.so.1 を移動してしまい、FreeBSDがloginすら出来なくなってしまいました。
LiveCDを作成し起動したLiveCDからアクセスしようと
zpool import -f -o altroot=/mnt zroot
と入力しましたが、failed to create mountpoint と出てマウントできません。
LiveCDからzfsをマウントするにはどのようにすればいいでしょうか?
教えて下さい。よろしくお願い致します。 >>173
「-o altroot=/mnt」のかわりに「-R /mnt」を使ってもだめ?
だめなら「zpool import failed to create mountpoint」でぐぐって試した方が早いかもな >>174
-R /mnt でも同じでした。
代わりに、
mkdir /tmp/mnt
zpool import -R /tmp/mnt
としたらマウントは出来ましたが、 /tmp/mnt/zroot 以下が空です。
他にマウントされた、
/tmp/mnt/tmp
/tmp/mnt/usr
/tmp/mnt/var
は中身が見えますが、肝心の /tmp/mnt/zroot だけが見えない状況です。 >>175
自己解決しました。
zfs umount zroot/ROOT/default と手動でマウントすることで見えるようになりました。
ありがとうございました。 FreeBSDでDockerを使ってみたいのですがこのサイトを参考にしても構わないでしょうか?
https://wiki.freebsd.org/Docker?action=refresh tail -F でファイルを監視して書き込まれたものをwhile read line で取り出してるシェルスクリプトを
daemon でデーモン化して有るんだけど
daemon を止めるとシェルスクリプト自体は停止できるんだけど、 tailコマンドが実行されたまま残る
ファイルに何か書き出されるとpipeが壊れてるので止まるって状況なんだけど
shを止められたら、そこから起動しているコマンドも一緒に殺す方法無いですか?
プロセスグループ殺したいけど、 Linuxみたいに /bin/kill -- でプロセスグループ殺せるわけでも無く… >>180
bash 前提だけど↓じゃだめ?
trap 'kill $(jobs -p)' EXIT プロセスグループとしてマイナスにしていないからとか?
$ kill -- -PGID
あるいは実はプロセスグループに含まれていないとか FreeBSD 11.2-RELEASE-p4 10.2からfreebsd-updateでバージョンアップしました。
# pkg version すると
wget-1.19.5 <
と表示されますが pkg upgrade をしても Your packages are up to date.
と出てupgradeされません。
pkg update -F しても一緒。
http://pkg.freebsd.org/freebsd:11:x86:64/latest/All/ を見ると wget-1.19.5_1.txz があるので
1.19.5 が最新版ぽいのですが、そうするとなんで
# pkg version したときに "<" になるんでしょうか・・・ インデックス的には配信済みだけど肝心のパッケージがまだ配信されてないとかではないでしょうか
パッケージ自体を直接持ってきてインストールしてもダメでしょうか wget-1.19.5 < needs updating (index has 1.19.5_1)
pkg upgrade wget
Installed packages to be UPGRADED:
wget: 1.19.5 -> 1.19.5_1 # wget http://pkg.freebsd.org/freebsd:11:x86:64/latest/All/wget-1.19.5_1.txz
# pkg install ./wget-1.19.5_1.txz
# pkg version
wget-1.19.5_1 =
で最新になりました・・・でも pkg version で "<" になっているパッケージが他にも有ります。
インデックス (http://pkg.freebsd.org/freebsd:11:x86:64/latest/packagesite.txz ?) を見ると
"tiff":{"origin":"graphics/tiff","version":"4.0.10"}
pkg version した結果は tiff-4.0.9_1 <
pkg upgrade しても Your packages are up to date.
pkg upgrade tiff しても Your packages are up to date.
確認すべき箇所等あったら教えてください。 単に他の引っかかってるヤツもwgetすりゃイイんじゃねえの? latest じゃなくでデフォルトの quarterly のままという落ちだろ >>186
/usr/ports/INDEX-* の構成
/etc/pkg/FREEBSD.conf, /usr/local/etc/pkg.conf, /etc/portsnap.conf の中身
このへんの整合性がfreebsd-update後に乱れて手動で調整する必要が
あったような 詳しくは思い出せないスマン
>>180
pkill って関係あるんかな 外してたらスマン latest にしたいなら pkg の設定を latest にすればいいだけ
freebsd-update で /etc/ が書き変わったならメッセージが出たはず pkg version は INDEX ファイルが存在するならそれを利用する
つまり pkg で取ってくるバイナリとの整合性はない
ports には quarterly はなく最新だけ
portsnap.conf で関係するのは INDEX ファイルを更新するかどうか >>189
pkillってpidで指定する代わりにプロセス名を指定するやつ
pkill -KILL zsh
すると問答無用ですべてのzshをKILLしてくれるぞ >>181
どうも駄目っぽい
jobs -pで何も帰ってこないです…
ありがとうです。もうちょい調べてみます >>187-191
>>188がビンゴでした!ありがとうございました!
/etc/pkg/FREEBSD.conf, がquarterlyになってました。
>>191 の「pkg version は INDEX ファイルが存在するなら〜」のINDEXは
/usr/ports/INDEX-11 とかのことですか?
portsnapを毎日回してるので最新バージョンに差違があるんでしょうか。
とりまこのまま使ってみます。あざした。 FreeBSDのデスクトップ環境を試用してみたいのですがおすすめはありますか?
軽めで安定している物を希望します。LinuxだとLXDEが有名ですしFreeBSDにも対応しているようですが
メンテナンス体制に不安ありなんて話も目にするのでよりよいのがあれば・・・ >>182
死なないorz
コード抜粋はこういう感じ
pipe_action() {
while read i
do
echo "$i" | 処理
done
}
( tail -n 0 -F $TARGET_LOG | pipe_action )&
PID=$!
trap "kill -- -$PID;exit 1" 0 1 2 3 15
wait
tailを殺せれば目的果たせるんだけど…
死んでくれない… >>197
Xfce 使ってるけど可もなく不可もなく…
安定性は問題無し 何で FreeBSD の firefox はメニューの一番下が Restart なの?
常識なさすぎ。頭悪すぎ。ホント止めて欲しいわ。 どのメニューのこと言ってるの>
うちだと"QUIT"だの"close Tab"が出るけど >>198
スクリプトの中ではデフォルトではプロセスグループを作らない。
set -m
でどうやろ? >>202
Menu BarをオンにしたときのFilesメニューかな FreeBSD 11.2-R amd64でi386-wineを使いたいんだがどうすればいいのだろうか
#pkg install i386-wine
だけだと
#wine
ELF interpreter /libexec/ld-elf.so.1 not found, error 8
と怒られて動かない
ググるとこの組み合わせは鬼門らしい?
古いバージョンだとi386の環境を丸ごと用意しろとか出てくるし
portsのインストール例ばかりでpkgのインストール例が見つからなかったり >>205
依存関係が解決出来てないのならportsから入れてみる
portmaster emulators/i386-wine
を試しなはれ うちは i386-wine-devel-3.3,1 を pkg install してあるけど、普通にあふと foobar2000 が動いてるで FreeBSDのkill(システムコール)ってPIDを負にしたときPGID扱いにする記載がないな(Linuxにはある)
プロセスグループの意味ないじゃん、っておもたら別にkillpgってのがあるのか >>206,207
ありがとう。両方やってみましたが変わらずの
ELF interpreter /libexec/ld-elf.so.1 not found, error 8
で動きませんでした >>208
man 1 kill
のEXAMPLESを嫁 >>208
https://www.freebsd.org/cgi/man.cgi?query=kill&amp;apropos=0&sektion=2&manpath=FreeBSD+11.2-RELEASE&arch=default&format=html
> For compatibility with System V, if the process number is negative but not -1,
> the signal is sent to all processes whose process group ID is equal to the absolute value of the process number.
> This is a variant of killpg(2). たぶんi386互換機能かLinux互換機能の問題と推測していますが
amd64環境下でこれらの機能を使った場合にアプリからシステムが
どう見えるのかに関する資料ってありませんかね?
どちらか、もしくは両方が不適切な状態になっていると仮定すると
説明つきますが、確認する方法がわかりません >>203
#!/bin/shの直後に
set -m追加で
いけたー
ありがとうございます >>205 >>210 >>213
amd64でi386-wineか。pkgでi386-wine-devel-3.3,1を使ってるよ。
amd64のインストール時に「Distribution Select」で「lib32」を
入れ忘れている、という凡ミスではなかろうね?
入れましたよ、ならごめん。 ■ このスレッドは過去ログ倉庫に格納されています