Cannot open virtual console 7でstartxできない

Gentoo Linuxにelogindを導入後、

xf86OpenConsole: Cannot open virtual console 7 (Permission denied)

のようなエラーでstartxできなくなってしまいました。

その後、startxできるようになるまでに試したことのメモです。

USEフラグにelogind -consolekit -systemdを追加

USE="elogind -consolekit -systemd"

emergeを再実行。

emerge --ask --changed-use --deep @world

$HOME/.xinitrcを修正

exec <WINDOW_MANAGER>

としていた部分を

exec dbus-launch --exit-with-session <WINDOW_MANAGER>

に書き換え。

startxするユーザーをttyのユーザーグループに追加

vi /etc/group

elogindサービスの起動

# /etc/init.d/elogind start

elogindサービスを起動してもstartxでエラーになる場合は、サービス起動後に一旦ログアウトして再ログインしてみるとエラーが解消される場合もあるみたいです。

ブート時に自動でelogindサービスを起動させたい場合は

# rc-update add elogind boot

としてみてください。

その他

Xorg関連のエラーではドライバーのインストールが抜けていたり、リビルドで直ったりすることもありますのでチェックしてみてください。

x11-drivers/xf86-video-intel
x11-drivers/xf86-video-vesa
x11-base/xorg-drivers

リンク

elogind – Gentoo Wiki
https://wiki.gentoo.org/wiki/Elogind

Gentoo Linuxのebuildリポジトリーの場所

Gentoo Linuxのebuildリポジトリーの場所が変更されたみたいです。

従来の場所/usr/portage
新しい場所/var/db/repos/gentoo
Gentoo ebuild repository

詳細については下記ファイルを参照してみてください。

/usr/share/portage/config/repos.conf

リンク

/usr/portage – Gentoo Wiki
https://wiki.gentoo.org/wiki//usr/portage

C#で配列char[]をstringに変換する方法

C#でcharの配列をstringに変換する方法を調べてみたところ、次の2つが使い易そうな感じでした。

new stringを使う方法

char[] array = { 'a', 'b', 'c', 'd', 'e' };
string s = new string(array);

Console.WriteLine(s);

実行結界

abcde

string.Concatを使う方法

char[] array = { 'a', 'b', 'c', 'd', 'e' };
string s = string.Concat(array);

Console.WriteLine(s);

実行結界

abcde

他にもstring.Appendを使って1文字ずつ追加していく方法等いろいろあると思いますので、使い易い実装を探してみてください。