タグ付けされた質問 「linux」

Linuxの質問は、プログラミングに関連している必要があります。このタグは、Linuxでコードを実行したという理由だけでなく、Linux APIまたはLinux固有の動作を使用したプログラミングに関する質問の場合にのみ使用してください。Linuxサポートが必要な場合は、https://unix.stackexchange.comまたは特定のLinuxディストリビューションのStack Exchangeサイト(https://askubuntu.comやhttps://elementaryos.stackexchange.com/など)を試すことができます。

5
動的リンク-Linux対。ウィンドウズ
Windowsでは、MSVCのDLLプロジェクトでC / C ++コードをコンパイルすると、2つのファイルが取得されます。 MyDll.dll MyDll.lib 私が理解しMyDll.libている限り、DLL内の関数の場所を示すポインタテーブルの種類が含まれています。このdllを使用すると、たとえばexeファイルで、MyDll.libリンケージ時にexeファイルに埋め込まれるため、実行時に関数がどこにあるかを「認識」し、関数MyDll.dllを使用できます。 しかし、Linuxで同じコードをコンパイルすると、1つのファイル(Linuxのファイルに相当)MySo.soなし で1つしか得られないので、リンク時に何も埋め込まれていない場合、Linuxの実行可能ファイルは関数の場所をどのようにして知るのでしょうか。MySo.alibMySo.so

1
Linuxでプロセスが新しいファイル記述子を開かないようにするが、ソケット経由でファイル記述子を受信できるようにする
私は現在、ソケットペアをセットアップしてフォークし、このソケットペアを使用して通信する親プロセスがあるプロジェクトに取り組んでいます。子は、ファイル(またはその他のファイル記述子ベースのリソース)を開きたい場合は常に親に移動し、リソースを要求しfdて、socketpair経由で送信されます。さらに、子供が自分でファイル記述子を開かないようにしたいと思います。 私はつまずきましsetrlimitたが、子が新しいファイル記述子を開くことができなくなりましたが、最初のソケット接続で送信されたファイル記述子が無効になるようです。単一のプロセスが任意のファイルを開き、そのファイル記述子を他のプロセスに送信し、これらの他のプロセスが自分でファイル記述子を開くことを許可せずにそれらを使用できるようにするLinuxのメソッドはありますか? 私のユースケースでは、フォーク後に適用でき、すべてのファイル記述子(ファイルだけでなく、ソケット、ソケットペアなど)にも適用できる限り、カーネル構成、システムコールなどを使用できます。
9 c  linux  system-calls 

1
単純な画面/モニターデバイスにはどのLinuxドライバーサブシステム/ APIが使用されますか?
タッチスクリーン付きの組み込みシステムを開発しています。タッチスクリーンは、入力と出力の両方として動作し、「仮想」キーボードがグラフィック出力をオーバーレイします。 kernel.orgのこのガイドを使用して作成された、タッチセンサーからの入力を読み取り、それをキープレスに正しく変換する機能するデバイスドライバーがあります。このドライバーを拡張して、画面への画像出力も処理したいと考えています。 できるだけ少ない重複でgettyとXの両方をサポートしたいと思います。最小限のXなど、厳選されたパッケージで最小限のDebianバリアントを実行しています。パブリックGitHubリポジトリにダンプする可能性がありますが、このドライバーをリポジトリパイプラインに入れようとするつもりはありません。 画面イメージの出力は、現在、危険な回避策を介して行われています。ディスプレイに接続されていないにもかかわらず、CPUの組み込みグラフィックスハードウェアにレンダリングを強制するブートオプションと、そのバッファーを継続的に画面スクレイピングするデーモンが、いくつかの事前変更を変更します。キーボードビジュアルを作成するピクセルを定義し、それを実際の画面にプッシュします。 これは概念実証として機能し、画面デバイスが期待する言語を正しく理解していることを証明しますが、明らかに最適ではありません。 kernel.org 「DRM」デバイスドライバーのガイドもありますが、私のハードウェアで可能なことは、次のように深刻になりすぎています。 Linux DRMレイヤーには、複雑なグラフィックスデバイスのニーズをサポートするためのコードが含まれており、通常、3Dグラフィックスアクセラレーションに適したプログラム可能なパイプラインが含まれています。 私のハードウェアには3Dアクセラレーションに似たものがないため、これはおそらく私が望んでいるものではないと結論付けます。 どのサブシステム/ APIを使用すればよいですか?欠落している用語の1つが私の検索を妨げているものだと思いますが、これを達成する方法についての情報がありましたら、いただければ幸いです。 ハードウェアの詳細(おそらく無関係): CPUと画面は、CPUがネイティブでサポートしていない8080-esqueパラレルプロトコルを介して通信するため、GPIOでそれをエミュレートします(mmapを介してレジスターを操作することにより)。 完全な画面イメージの送信には約20ミリ秒かかりますが、組み込みグラフィックスバッファーから完全なコピーを取得するには約180ミリ秒かかるため、そのステップをスキップすることが最も重要な目的です。画面ハードウェアには十分なSGRAMが含まれています、フレーム全体のデータを保持するのにメモリが、長方形のサブ領域の書き込みをサポートしているため、変更された画面の部分のみを更新するフックが望ましいでしょう。 画面は、着信データのタイミングに特別ではありません。タッチセンサー入力は、CPUがサポートするI²Cを介してCPUと通信する専用のICによって処理されます。現在のドライバーはlinux/input-polldev.hインターフェースを使用します。CPUはBroadcom BCM2835であり、画面はHimax HX8357コントローラーが埋め込まれたTFTであり、タッチスクリーンセンサーデコーダーはST STMPE610であり、HX8357とBCM2835の間には電圧レベルシフター(Nexperia 74LVCH245A)があります。詳細については、リクエストに応じてご利用いただけます。

3
NON GNU awkを使用して変更を適切に保存する
OPが編集を行ってInput_file(s)自体に操作を保存する必要があるという質問(SO自体)に遭遇しました。 1つのInput_fileについて、次のことを実行できます。 awk '{print "test here..new line for saving.."}' Input_file > temp && mv temp Input_file ここで、同じ種類のファイル形式(ここでは.txtと仮定)で変更を加える必要があるとしましょう。 この問題に対して私が試した/考えたこと:そのアプローチは.txtファイルのforループを通過し、singleを呼び出すのawkは面倒でお勧めできないプロセスです。不要なCPUサイクルを無駄にし、ファイルの数が増えると、それが増えるためです。スロー。 したがって、awkインプレースオプションをサポートしないNON GNU で複数のファイルのインプレース編集を実行するために、ここで何ができるか。私もこのスレッドを通過しましたawkを使用して変更を保存しますがawk、非GNU awkにはinplaceオプションがないため、NON GNU awkを使用して複数のファイルを変更することはできません。 注:なぜ私がbashタグを追加しているのか、回答の部分では一時ファイルの名前を実際のInput_fileに変更するためにbashコマンドを使用したので、追加します。 編集:ここにサンプルの例を追加するEd sirのコメントによると、このスレッドのコードの目的は、汎用のインプレース編集でも使用できます。 入力ファイルのサンプル: cat test1.txt onetwo three tets testtest cat test2.txt onetwo three tets testtest cat test3.txt onetwo three tets testtest 予想される出力の例: cat test1.txt 1 …

1
Linuxで正確なCPUキャッシュ階層情報をプログラムで取得する
Linux上の現在のCPUのデータキャッシュ階層の正確な説明を取得しようとしています。個々のL1 / L2 / L3(およびおそらくL4)データキャッシュのサイズだけでなく、それらが分割または共有される方法もコア。 たとえば、私のCPU(AMD Ryzen Threadripper 3970X)では、各コアには独自の32 KBのL1データキャッシュと512 KBのL2キャッシュがありますが、L3キャッシュはコアコンプレックス(CCX)内のコア間で共有されます。つまり、それぞれ16 MBの8つの異なるL3キャッシュがあります。 このWindows上のCPU-Zのスクリーンショットの「キャッシュ」セクションは、基本的に私が探しているものです。 Windowsでこれらの情報を取得しても問題ありませんGetLogicalProcessorInformation()。 ただし、Linuxでは、sysconf()L1およびL2データキャッシュのコアごとのキャッシュサイズ(_SC_LEVEL1_DCACHE_SIZEおよび_SC_LEVEL2_DCACHE_SIZE)、またはL3キャッシュの合計サイズ(_SC_LEVEL3_CACHE_SIZE)のどちらかしか表示されないようです。 編集:VMWareでの lstopoの出力。仮想マシンには8つのコアがあります。L1およびL2キャッシュ情報は問題ありませんが、L3キャッシュサイズが正しくないようです。

2
エラーのため、Java 14でnetbeans 11.3をインストールできませんでした:「サポートされていないJVMバージョン」
Java 14でnetbeansをインストールしようとしています。 エラーが発生しています- > sudo ./Apache-NetBeans-11.3-bin-linux-x64.sh --javahome /home/raj/.sdkman/candidates/java/current Configuring the installer... Searching for JVM on the system... Unsupported JVM version at /home/raj/.sdkman/candidates/java/current. Try to specify another JVM location using parameter --javahome 以下は私のJavaの詳細です- > which java /home/raj/.sdkman/candidates/java/current/bin/java > java --version openjdk 14 2020-03-17 OpenJDK Runtime Environment (build 14+36-1461) OpenJDK 64-Bit Server …

5
「ClusterRoleBinding” kubernetes-dashboard“ is invalid:roleRef:Invalid value” Web UIをデプロイするとき
ここで説明するようにKubernetes Web UIをデプロイしようとしています:https : //kubernetes.io/docs/tasks/access-application-cluster/web-ui-dashboard/ 私のシステム構成は次のとおりです。 $ uname -a Linux debian 4.19.0-6-amd64 #1 SMP Debian 4.19.67-2+deb10u2 (2019-11-11) x86_64 GNU/Linux $ /usr/bin/qemu-system-x86_64 --version QEMU emulator version 3.1.0 (Debian 1:3.1+dfsg-8+deb10u3) Copyright (c) 2003-2018 Fabrice Bellard and the QEMU Project developers $ minikube version minikube version: v1.5.2 commit: 792dbf92a1de583fcee76f8791cff12e0c9440ad-dirty $ kubectl version Client …

1
i2cドライバーの起動-raspbian
Linuxのデバイスドライバーは比較的新しいです。達成しようとしているのは、ラズベリーの起動時に外部RGBドライバーがi2cコマンドを受信するため、起動時にLEDが点灯することを確認できます。 私のアプローチは、起動時にロードされるカーネルモジュールを介してこれを達成しようとしています。私はこれを達成するために多くのことを試みましたが、現時点では知識のギャップがあるように感じています。多分誰かが私を助けることができますか?(ハードウェアの問題ではないことに注意してください。ユーザー空間からデバイスにコマンドを送信できます。) 私のカーネルモジュールコードは次のとおりです。 #include <linux/i2c.h> #include <linux/init.h> #include <linux/module.h> #include <linux/of_device.h> #include <linux/slab.h> #include <linux/string.h> #include <linux/hwmon.h> #include <linux/hwmon-sysfs.h> #include <linux/regmap.h> MODULE_AUTHOR ("Niels"); MODULE_DESCRIPTION("driver rgb led"); MODULE_LICENSE("GPL"); /*CAT3626 control registers*/ #define CAT3626_ADDRESS 0x66 #define CAT3626_ENA 0x03 #define CAT3626_REGA 0x00 #define CAT3626_REGB 0x01 #define CAT3626_REGC 0x02 struct cat3626 { struct device …

2
CSSで記述されたフォントを持つテキスト要素をキャンバスで使用する方法
これは、Bismonプロジェクト(H2020ヨーロッパのプロジェクトが資金を提供するGPLv3 +ソフトウェア)、git commit内にあり0e9a8eccc2976fます。このドラフトレポートでは、ソフトウェアについて説明します。この質問は、より多くの背景と動機を与えます。これは、(手書きの)webroot / jscript / bismon-hwroot.jsファイルに関するもので、Bismon(libonionの上の特殊なWebサーバー)によってコードが生成されるHTMLページで使用されます。 たとえば、スパンのCSSクラスを追加しましたspan.bmcl_evalprompt(たとえば、ファイルfirst-theme.cssに) JavaScriptをコーディングして、同じスタイル(同じフォント、色など...)を持つキャンバスに(できればjqueryでjcanvasを使用して)テキスト部分を追加するにはどうすればよいspan.bmcl_evalpromptですか?DOMにそのようなスパン要素を作成する必要がありますか?それは単に可能ですか? 私はLinux上の最近のFirefox(少なくとも68)のみに関心があります。jQueryは3.4です。私はJquery UI 1.12.1 も使用しています 私は私の心の中に持っていたアイデア1つの作成することでした<span class='bmcl_evalprompt'>遠くのブラウザビューポート(またはX11ウィンドウ)からの座標を持つ要素を、例えば時x= -10000とy= -10000 (ピクセル単位)、そしてその後、伝統を使用し、ドキュメントのDOMにその単一ひどく位置付け要素を追加フォントファミリー、フォントサイズ、要素サイズを取得するためのjqueryテクニック。しかし、もっと良い方法はありますか?またはそれを行ういくつかのjquery互換ライブラリ?

2
Visual Studioコードデバッガーエラー:「タスク 'gcc build active file'が見つかりませんでした」
Ubuntu Linuxを使用してVisual Studio CodeでC / C ++ワークスペースを構成しようとしていますが、デバッガーを正しく動作させる方法がわかりません。インターネットから「tasks.json」ファイルをコピーして、F5キーを押してコードをコンパイルできるようにしましたが、デバッグモードに入ろうとするたびにエラー「Couldタスク「gcc build active file」がポップアップしません。ここに2つのjsonがあります:tasks.json { "version": "2.0.0", "tasks": [ { "label": "debug", "type": "shell", "command": "", "args": [ "g++", "-g", "${relativeFile}", "-o", "a.exe" ] }, { "label": "Compile and run", "type": "shell", "command": "", "args": [ "g++", "-g", "${relativeFile}", "-o", "${fileBasenameNoExtension}.out", "&&", "clear", "&&", …

1
スクリーンショットロボットがDebianで黒い画面しかキャプチャしない
java.awt.RobotLinuxでOpenJDK 11 を使用して画面キャプチャーを作成しています。Linuxでの結果は完全に黒い画像です。同じコードがUbuntuとWindowsで機能します(もちろん別のファイルパスを使用します)。 どんな手掛かり? public void captureScreen() throws AWTException { Robot robot = new Robot(GraphicsEnvironment.getLocalGraphicsEnvironment().getDefaultScreenDevice()); BufferedImage screen = robot.createScreenCapture(new Rectangle(getDefaultToolkit().getScreenSize())); try { ImageIO.write(screen, "jpg", new File("/tmp/screenshot.jpg")); } catch (IOException e) { e.printStackTrace(); } } 更新: この問題の原因は、OpenJDKとWaylandの組み合わせにあります。Oracle JDK / JRE(13.0.1)では、すべてが正常に動作します。
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.