『すでに解決されたのかもしれませんが、Ubuntu13.04で同じエラーが出たので。DTV_ISDBS_TS_IDをDTV_ISDBS_TS_ID_LEGACYに変更すればコンパイルできませんか?値は同じですがDTV_STREAM_IDの方が正しいのかもしれません。Linuxカーネルのバージョンによって/usr/include/linux/dvb/frontend.h内でDTV_ISDBS_TS_IDが定義されていない様です。』
上記のようなコメントを寄せてくださる、
名もなき親切な方(戦士)がいらしてくださいました。
エラーが出ていたtune.c(up0219.gzで検索、ダウンロード、
rename→up0219.tar.gzを解凍)の当該行の変更箇所「S」の追加に加え、
さらに後ろに、"_LEGACY"を追記することで、
問題が解決するんだそうです。
96 prop[0].cmd = DTV_FREQUENCY;
97 prop[0].u.data = channel->frequency;
98 prop[1].cmd = DTV_ISDBS_TS_ID_LEGACY;
99 prop[1].u.data = channel->ts_id;
100 prop[2].cmd = DTV_TUNE;
行番号は、デフォルトのtune.cに拠る。
受信地方のチャンネル数などにより、増減するはず。
これで、かつてコンパイルしたものを取りおきしておき流用する
などという、カッコよくないことをしないでも、
tuneが使える状況に戻りました。慶賀です。
tuneは、受信テスト用で、チャンネル変更がやや面倒だけど、
年寄りには、これで十分なんです。mythtvとか、よー使いきらん。
「これは、ちょっと古いです」というような文言を追加する
ことで、コンパイルが通るなんて、なんか、すごいなあ。
2013年09月05日
理解が一歩前進。chroot/linux
きょう、archbangを復活させる過程で、またchrootコマンドを
使用することになった。興味のない人には、
もういいよ、の話だろうけど、マルチブートを頻繁にやっている
と、事故も起こりやすい。chrootは、
看過できない重要なポイントで、これを
しっかり理解したいと思っている。
http://wiki.bit-hive.com/north/pg/BIND%A5%AA%A5%D7%A5%B7%A5%E7%A5%F3%A4%C7%A4%CEmount
のサイトに、mountコマンドのオプション、--bind について
「任意のディレクトリ以下を仮想の独自のファイルシステムとしてアタッチすることができます。
mount --bind olddir newdir
olddirはnewdirとなり、まさにシンボリックリンクと同じようになことが実現できます」
という説明がある。
つまり、じぶんが実行したmountは、
こちらの環境の /dev と /proc を仮想の独自ファイルとして
あちらの環境にアタッチ(付与?)した、ってことなんだろう。
それから、chrootして、ネットが「hostnameを解決できず」とかで
pacman -S コマンドが使えなかった。確かに、hostnameは、
こちらの環境とあちらの環境では、違ったはずである。
ま、二つのポイントからでしかないが、chrootの根源は、
こっちの環境をあちらに持っていき、そこにいるがごときに
あっちを改変する、ということになりそうだ。
換言すれば、修正を試みるに当たって、
何から起動するかは、重要な要素のようなのだ。
動作していないあっちの環境(システム)にはあるけれど、
こっちにない機能(平たくいえば、コマンド)は、
chrootしたからって、使えない、ってことではないのか。
あっちへchrootしたからって、生きている
もの(起動したシステム)のようには
振る舞わせられない、ってことのようなのだ。
「そんなこと、常識じゃん」という中級以上の
人は多いだろうけど、でも、初級者にちゃんとわかるように
説明してくれている人はいない。
fedora19のインストールディスクを使って、
chrootし、debian(ubuntu)系のlubuntuに
grub-installコマンドなどが
使えたわけは、linuxなら、ほとんどのディストリ
ビューションでgrub2を使っているからでしかない。
そして、押し入った環境内の/boot/grub/grub.cfgを
読み込んで、grub-mkconfig させられたってこと。
結論的に云えば、修復したい環境と同じか近い環境から
chrootするのがいい、ってことになると思う。
ずーっとこの辺りのことで悶々としていた。どっちのコマンドを
使っていることになるのか、よく解らなかったのだ。
上記のような空想から、今日の修復では、debianを使った。なぜって、
solusosのインストールディスクを探し出すのがたいへんだから。
chroot先のsources.listを見ると、debianのsqueezeだから、
ほぼ同じってことで。
それから、インストールメディアって、live動作上で、
インストールできるもののすべてが、「開いている」わけでも
なさそうだよね。そういうことからすると、込み入ったことを
しようとするには、osインストール済みの別のhddを
つないで、そこからchrootするのがいいのかもしれない、
とも思った。
ちなみに、おもしろいというか、chrootの優柔不断さといってもいい
と思うんだけど、chrootしたら、mountした先のpathで操作する。
たしかに、change root。いる場所があっちになる。
でも、grubのインストール先としては、sdaでなく、sdbだったりもする。
あっちで操作しているのに、こっちから見たときの、
デバイスってことになるね。
なりすまし具合が中途半端ってことじゃないのか!
操作を間違わないためには、
chrootした先で、
# fdisk -l /dev/sdaとか
# fdisk -l /dev/sdbとか
やってみることは、必要な操作だと思う。
あっちの環境としてじぶんが
どう見えているかが判る。
使用することになった。興味のない人には、
もういいよ、の話だろうけど、マルチブートを頻繁にやっている
と、事故も起こりやすい。chrootは、
看過できない重要なポイントで、これを
しっかり理解したいと思っている。
http://wiki.bit-hive.com/north/pg/BIND%A5%AA%A5%D7%A5%B7%A5%E7%A5%F3%A4%C7%A4%CEmount
のサイトに、mountコマンドのオプション、--bind について
「任意のディレクトリ以下を仮想の独自のファイルシステムとしてアタッチすることができます。
mount --bind olddir newdir
olddirはnewdirとなり、まさにシンボリックリンクと同じようになことが実現できます」
という説明がある。
つまり、じぶんが実行したmountは、
こちらの環境の /dev と /proc を仮想の独自ファイルとして
あちらの環境にアタッチ(付与?)した、ってことなんだろう。
それから、chrootして、ネットが「hostnameを解決できず」とかで
pacman -S コマンドが使えなかった。確かに、hostnameは、
こちらの環境とあちらの環境では、違ったはずである。
ま、二つのポイントからでしかないが、chrootの根源は、
こっちの環境をあちらに持っていき、そこにいるがごときに
あっちを改変する、ということになりそうだ。
換言すれば、修正を試みるに当たって、
何から起動するかは、重要な要素のようなのだ。
動作していないあっちの環境(システム)にはあるけれど、
こっちにない機能(平たくいえば、コマンド)は、
chrootしたからって、使えない、ってことではないのか。
あっちへchrootしたからって、生きている
もの(起動したシステム)のようには
振る舞わせられない、ってことのようなのだ。
「そんなこと、常識じゃん」という中級以上の
人は多いだろうけど、でも、初級者にちゃんとわかるように
説明してくれている人はいない。
fedora19のインストールディスクを使って、
chrootし、debian(ubuntu)系のlubuntuに
grub-installコマンドなどが
使えたわけは、linuxなら、ほとんどのディストリ
ビューションでgrub2を使っているからでしかない。
そして、押し入った環境内の/boot/grub/grub.cfgを
読み込んで、grub-mkconfig させられたってこと。
結論的に云えば、修復したい環境と同じか近い環境から
chrootするのがいい、ってことになると思う。
ずーっとこの辺りのことで悶々としていた。どっちのコマンドを
使っていることになるのか、よく解らなかったのだ。
上記のような空想から、今日の修復では、debianを使った。なぜって、
solusosのインストールディスクを探し出すのがたいへんだから。
chroot先のsources.listを見ると、debianのsqueezeだから、
ほぼ同じってことで。
それから、インストールメディアって、live動作上で、
インストールできるもののすべてが、「開いている」わけでも
なさそうだよね。そういうことからすると、込み入ったことを
しようとするには、osインストール済みの別のhddを
つないで、そこからchrootするのがいいのかもしれない、
とも思った。
ちなみに、おもしろいというか、chrootの優柔不断さといってもいい
と思うんだけど、chrootしたら、mountした先のpathで操作する。
たしかに、change root。いる場所があっちになる。
でも、grubのインストール先としては、sdaでなく、sdbだったりもする。
あっちで操作しているのに、こっちから見たときの、
デバイスってことになるね。
なりすまし具合が中途半端ってことじゃないのか!
操作を間違わないためには、
chrootした先で、
# fdisk -l /dev/sdaとか
# fdisk -l /dev/sdbとか
やってみることは、必要な操作だと思う。
あっちの環境としてじぶんが
どう見えているかが判る。
でかしたぞ、オレ。死んだはずのarchbang復活劇。
じつは、じぶんのアレンジしたデスクトップが
えらく気に入っていたもので、死んだ子の年を数える
ようことこをしていた。
ま、ないはずの執念がちょっと燃えていた。
chrootが解っているようで解っていない、
中途半端なじぶんなんだけど、この度は大成功。
以下は、やったことのうち、要らない部分を削除した
ほぼ現実のログ。
修復操作は、archbangの入ったhddをもう一台つないで、
それから起動して、壊れたarchbangの入っているhddを
mount、chrootして行った。
archのロゴが傾いているのは、
blogの表示上、半角スペースが効かないため。
OS: ArchBang x86_64
/\ Hostname: archbang
.;#. Kernel: 3.10.10-1-ARCH
/####\ Uptime: 0
;## #; Window Manager: openbox
+### .## Packages: 719
+#### ;### RAM: 236 / 7886 MB
###### #####; CPU: Intel(R) Core(TM) i5-2405S CPU
####### ###### Shell: bash
######## ######## Root: 6.2G / 28G (ext4)
.########;;########;
.########; ;#######
#########. .########;
######' '######
;#### ####;
##' '##
#' '#
xxx1@archbang ~ $ sudo mkdir /mnt/arch
xxx1@archbang ~ $ sudo mount /dev/sda8 /mnt/arch
xxx1@archbang ~ $ cd /var/cache/pacman/pkg
xxx1@archbang /var/cache/pacman/pkg $ sudo cp grub-2.00.5086-1-x86_64.pkg.tar.xz /mnt/arch/var/cache/pacman/pkg/
xxx1@archbang /var/cache/pacman/pkg $ cd
xxx1@archbang ~ $ sudo mount --bind /dev /mnt/arch/dev
xxx1@archbang ~ $ sudo mount --bind /proc /mnt/arch/proc
xxx1@archbang ~ $ sudo chroot /mnt/arch
.
#. OS: Archbang x86_64
/;# Hostname: archbang
#;## Kernel: 3.10.10-1-ARCH
/###' Uptime: 0:08
;#\ #; Window Manager: None found
+### .## Packages: 757
+#### ;### RAM: 280 MB / 7886 MB
###### #####; CPU: Intel(R) Core(TM) i5-2405S CPU @ 2.50GHz
####### ###### Shell: Bash
######## ######## Root FS: 7.0G / 30G (ext4)
.########;;########\
.########; ;#######
#########. .########`
######' '######
;#### ####;
##' '##
#' `#
[root@archbang /]# sudo pacman -U /var/cache/pacman/pkg/grub-2.00.5086-1-x86_64.pkg.tar.xz
loading packages...
resolving dependencies...
looking for inter-conflicts...
Packages (1): grub-2.00.5086-1
Total Installed Size: 18.93 MiB
:: Proceed with installation? [Y/n] Y
(1/1) checking keys in keyring [######################] 100%
(1/1) checking package integrity [######################] 100%
(1/1) loading package files [######################] 100%
(1/1) checking for file conflicts [######################] 100%
(1/1) checking available disk space [######################] 100%
(1/1) installing grub [######################] 100%
Copying /boot/grub/grub.cfg.pacsave to /boot/grub/grub.cfg
Generating grub.cfg.example config file...
This may fail on some machines running a custom kernel.
done.
Optional dependencies for grub
freetype2: For grub-mkfont usage [installed]
fuse: For grub-mount usage [installed]
dosfstools: For grub-mkrescue FAT FS and EFI support [installed]
efibootmgr: For grub-install EFI support
libisoburn: Provides xorriso for generating grub rescue iso using
grub-mkrescue
os-prober: To detect other OSes when generating grub.cfg in BIOS systems
[installed]
mtools: For grub-mkrescue FAT FS support
[root@archbang /]# sudo grub-install --force /dev/sda8
/usr/bin/grub-bios-setup: warning: File system `ext2' doesn't support embedding.
/usr/bin/grub-bios-setup: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
[root@archbang /]# exit
いちいちumountする余裕もなく、
xxx1@archbang ~ $ sudo reboot
あらかじめ、同一hdd内のすべてのosで、
ルートパーティションのpbrに、grub-installしなおしてある。
ブータブルmbmディスクから起動して、mbmをmbrにインストールした。
見事、復活起動させられたのであった。
なぜ、こういうやり方になったか、というと、
hostnameが解決できないとかってことで、
pacman -S でのネットを使った
ふつうのインストールができなかったからだ。
で、現物支給するしかないじゃないか、ということで、
archbangの入っているhddをもう一台つなぎ、
/var/cache/pacman/pkgにあるgrubの最新版を
マウントした/mnt/arch/var/cache/pacman/pkgに、
コピーしたのだった。そこから、pcman -U を使って
grubパッケージのインストールができ、ついでに、おのれの
pgrにgrubをブートローダーとしてインストールしたのだった。
archlinuxのインストールディスクで修復にトライしたとき
壊しちゃったように感じていたが、どうやら、ダウンロードした
だけの状態で、まだキャッシュにある
段階で中断し、archbangの改変には至らなかったようだ。
まことに幸いだった。
気に入っているルックアンドフィール(ウィジェット)は、
malys-inversio-gray。ubuntugnome系のだったと思うけど、
openboxで使えている。黒っぽいタイプは、数多くあるけど、
趣味性の高さはあるように思う。
↓ ↓ ↓ ↓
万事上手く行ったはずが、solusosがどうしても、
mbmから起動しない。mbmで起動できなかったって、初めて。
debianからchrootして、
$ sudo grub-install /dev/sdb
とmbrへなら、コマンドも通って
grubからすべて起動できた。本体起動できたあと、
$ sudo grub-install --force /dev/sda10
とか、
$ sudo grub-install --force --root-directory=/ /dev/sda10
とかやり(いつもの表示のように見える)、そのたびごとに、
mbmをmbrにインストールしてみて、mbmから起動しないか
確かめたけど、タメ。ま、いいんだけどね、
grubになったとはいえ、lubuntu、archbangを含め
3つとも起動できるんだから。
でもちょっと癪に障る。
えらく気に入っていたもので、死んだ子の年を数える
ようことこをしていた。
ま、ないはずの執念がちょっと燃えていた。
chrootが解っているようで解っていない、
中途半端なじぶんなんだけど、この度は大成功。
以下は、やったことのうち、要らない部分を削除した
ほぼ現実のログ。
修復操作は、archbangの入ったhddをもう一台つないで、
それから起動して、壊れたarchbangの入っているhddを
mount、chrootして行った。
archのロゴが傾いているのは、
blogの表示上、半角スペースが効かないため。
OS: ArchBang x86_64
/\ Hostname: archbang
.;#. Kernel: 3.10.10-1-ARCH
/####\ Uptime: 0
;## #; Window Manager: openbox
+### .## Packages: 719
+#### ;### RAM: 236 / 7886 MB
###### #####; CPU: Intel(R) Core(TM) i5-2405S CPU
####### ###### Shell: bash
######## ######## Root: 6.2G / 28G (ext4)
.########;;########;
.########; ;#######
#########. .########;
######' '######
;#### ####;
##' '##
#' '#
xxx1@archbang ~ $ sudo mkdir /mnt/arch
xxx1@archbang ~ $ sudo mount /dev/sda8 /mnt/arch
xxx1@archbang ~ $ cd /var/cache/pacman/pkg
xxx1@archbang /var/cache/pacman/pkg $ sudo cp grub-2.00.5086-1-x86_64.pkg.tar.xz /mnt/arch/var/cache/pacman/pkg/
xxx1@archbang /var/cache/pacman/pkg $ cd
xxx1@archbang ~ $ sudo mount --bind /dev /mnt/arch/dev
xxx1@archbang ~ $ sudo mount --bind /proc /mnt/arch/proc
xxx1@archbang ~ $ sudo chroot /mnt/arch
.
#. OS: Archbang x86_64
/;# Hostname: archbang
#;## Kernel: 3.10.10-1-ARCH
/###' Uptime: 0:08
;#\ #; Window Manager: None found
+### .## Packages: 757
+#### ;### RAM: 280 MB / 7886 MB
###### #####; CPU: Intel(R) Core(TM) i5-2405S CPU @ 2.50GHz
####### ###### Shell: Bash
######## ######## Root FS: 7.0G / 30G (ext4)
.########;;########\
.########; ;#######
#########. .########`
######' '######
;#### ####;
##' '##
#' `#
[root@archbang /]# sudo pacman -U /var/cache/pacman/pkg/grub-2.00.5086-1-x86_64.pkg.tar.xz
loading packages...
resolving dependencies...
looking for inter-conflicts...
Packages (1): grub-2.00.5086-1
Total Installed Size: 18.93 MiB
:: Proceed with installation? [Y/n] Y
(1/1) checking keys in keyring [######################] 100%
(1/1) checking package integrity [######################] 100%
(1/1) loading package files [######################] 100%
(1/1) checking for file conflicts [######################] 100%
(1/1) checking available disk space [######################] 100%
(1/1) installing grub [######################] 100%
Copying /boot/grub/grub.cfg.pacsave to /boot/grub/grub.cfg
Generating grub.cfg.example config file...
This may fail on some machines running a custom kernel.
done.
Optional dependencies for grub
freetype2: For grub-mkfont usage [installed]
fuse: For grub-mount usage [installed]
dosfstools: For grub-mkrescue FAT FS and EFI support [installed]
efibootmgr: For grub-install EFI support
libisoburn: Provides xorriso for generating grub rescue iso using
grub-mkrescue
os-prober: To detect other OSes when generating grub.cfg in BIOS systems
[installed]
mtools: For grub-mkrescue FAT FS support
[root@archbang /]# sudo grub-install --force /dev/sda8
/usr/bin/grub-bios-setup: warning: File system `ext2' doesn't support embedding.
/usr/bin/grub-bios-setup: warning: Embedding is not possible. GRUB can only be installed in this setup by using blocklists. However, blocklists are UNRELIABLE and their use is discouraged..
Installation finished. No error reported.
[root@archbang /]# exit
いちいちumountする余裕もなく、
xxx1@archbang ~ $ sudo reboot
あらかじめ、同一hdd内のすべてのosで、
ルートパーティションのpbrに、grub-installしなおしてある。
ブータブルmbmディスクから起動して、mbmをmbrにインストールした。
見事、復活起動させられたのであった。
なぜ、こういうやり方になったか、というと、
hostnameが解決できないとかってことで、
pacman -S でのネットを使った
ふつうのインストールができなかったからだ。
で、現物支給するしかないじゃないか、ということで、
archbangの入っているhddをもう一台つなぎ、
/var/cache/pacman/pkgにあるgrubの最新版を
マウントした/mnt/arch/var/cache/pacman/pkgに、
コピーしたのだった。そこから、pcman -U を使って
grubパッケージのインストールができ、ついでに、おのれの
pgrにgrubをブートローダーとしてインストールしたのだった。
archlinuxのインストールディスクで修復にトライしたとき
壊しちゃったように感じていたが、どうやら、ダウンロードした
だけの状態で、まだキャッシュにある
段階で中断し、archbangの改変には至らなかったようだ。
まことに幸いだった。
気に入っているルックアンドフィール(ウィジェット)は、
malys-inversio-gray。
openboxで使えている。黒っぽいタイプは、数多くあるけど、
趣味性の高さはあるように思う。
↓ ↓ ↓ ↓
万事上手く行ったはずが、solusosがどうしても、
mbmから起動しない。mbmで起動できなかったって、初めて。
debianからchrootして、
$ sudo grub-install /dev/sdb
とmbrへなら、コマンドも通って
grubからすべて起動できた。本体起動できたあと、
$ sudo grub-install --force /dev/sda10
とか、
$ sudo grub-install --force --root-directory=/ /dev/sda10
とかやり(いつもの表示のように見える)、そのたびごとに、
mbmをmbrにインストールしてみて、mbmから起動しないか
確かめたけど、タメ。ま、いいんだけどね、
grubになったとはいえ、lubuntu、archbangを含め
3つとも起動できるんだから。
でもちょっと癪に障る。