<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Catégorie :Tutos Geek - </title>
	<atom:link href="https://astrabene.com/category/tutos/feed/" rel="self" type="application/rss+xml" />
	<link>https://astrabene.com</link>
	<description></description>
	<lastBuildDate>Sun, 26 Oct 2025 05:16:51 +0000</lastBuildDate>
	<language>fr-FR</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.8.3</generator>
<site xmlns="com-wordpress:feed-additions:1">249244026</site>	<item>
		<title>Tuto: PHP rss-reader</title>
		<link>https://astrabene.com/2025/10/26/tuto-php-rss-reader/</link>
					<comments>https://astrabene.com/2025/10/26/tuto-php-rss-reader/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Sun, 26 Oct 2025 05:08:18 +0000</pubDate>
				<category><![CDATA[Tutos Geek]]></category>
		<guid isPermaLink="false">https://astrabene.com/?p=301</guid>

					<description><![CDATA[Voila , comment relever les flux rss et les enregistrer dans une db . ce script php a bessoin d&#8217;un fichier json (ref feeds.json ) a placer dans le meme&#8230;<p>Lisez plus sur <a href="https://astrabene.com/2025/10/26/tuto-php-rss-reader/"></a></p>]]></description>
										<content:encoded><![CDATA[
<p>Voila , comment relever les flux rss et les enregistrer dans une db .</p>



<pre class="wp-block-code"><code> 
&lt;?php
// ======================================
// fetch_feeds.php — Compatible PHP 5.6
// ======================================

// CONFIG BASE DE DONNÉES
$host = "";
$user = "";
$pass = "";
$dbname = "";


// Connexion MySQL
$mysqli = new mysqli($host, $user, $pass);
if ($mysqli->connect_error) die("Erreur MySQL: " . $mysqli->connect_error);

// Création de la base si inexistante
$mysqli->query("CREATE DATABASE IF NOT EXISTS `$dbname` CHARACTER SET utf8 COLLATE utf8_general_ci");
$mysqli->select_db($dbname);

// Création de la table feednews si inexistante
$createTable = "
CREATE TABLE IF NOT EXISTS feednews (
    id INT AUTO_INCREMENT PRIMARY KEY,
    source VARCHAR(255),
    category VARCHAR(255),
    title TEXT,
    link TEXT,
    description TEXT,
    pubDate DATETIME,
    date_added TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    UNIQUE KEY unique_entry (title(255), link(255))
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
";
$mysqli->query($createTable);

// Charger la liste des feeds
$jsonFile = __DIR__ . '/feeds.json';
if (!file_exists($jsonFile)) {
    die("Fichier feeds.json manquant !");
}
$feeds = json_decode(file_get_contents($jsonFile), true);

if (!$feeds) {
    die("Erreur: impossible de lire feeds.json");
}

// Fonction pour récupérer et parser un flux RSS
function fetchRSS($url) {
    $context = stream_context_create(array(
        'http' => array('timeout' => 10, 'user_agent' => 'Mozilla/5.0')
    ));
    $content = @file_get_contents($url, false, $context);
    if (!$content) return array();

    libxml_use_internal_errors(true);
    $xml = simplexml_load_string($content);
    if (!$xml) return array();

    $items = array();
    foreach ($xml->channel->item as $item) {
        $items&#91;] = array(
            'title' => trim((string)$item->title),
            'link' => trim((string)$item->link),
            'description' => trim(strip_tags((string)$item->description)),
            'pubDate' => date('Y-m-d H:i:s', strtotime((string)$item->pubDate))
        );
    }
    return $items;
}

// Boucle sur chaque flux
$totalAdded = 0;
foreach ($feeds as $feed) {
    echo "&#x23f3; Lecture de: {$feed&#91;'source']}...\n";
    $items = fetchRSS($feed&#91;'url']);

    foreach ($items as $news) {
        if ($news&#91;'title'] &amp;&amp; $news&#91;'link']) {
            $stmt = $mysqli->prepare("
                INSERT IGNORE INTO feednews (source, category, title, link, description, pubDate)
                VALUES (?, ?, ?, ?, ?, ?)
            ");
            $stmt->bind_param("ssssss",
                $feed&#91;'source'],
                $feed&#91;'category'],
                $news&#91;'title'],
                $news&#91;'link'],
                $news&#91;'description'],
                $news&#91;'pubDate']
            );
            $stmt->execute();
            if ($stmt->affected_rows > 0) $totalAdded++;
            $stmt->close();
        }
    }
}

echo "\n&#x2705; Import terminé. Nouveaux articles ajoutés : $totalAdded\n";
$mysqli->close();
?></code></pre>



<p>ce script php a bessoin d&rsquo;un fichier json (ref feeds.json ) a placer dans le meme repertoire:</p>



<pre class="wp-block-code"><code>&#91;
  {"source":"BBC News","category":"Monde général","url":"https://feeds.bbci.co.uk/news/rss.xml"},
  {"source":"BBC World","category":"International","url":"https://feeds.bbci.co.uk/news/world/rss.xml"},
  {"source":"Le Monde","category":"France/Monde","url":"https://www.lemonde.fr/rss/une.xml"},
  {"source":"CNN","category":"US/Monde","url":"http://rss.cnn.com/rss/edition.rss"},
  {"source":"The Guardian","category":"UK/Monde","url":"https://www.theguardian.com/international/rss"},
  {"source":"New York Times","category":"US/Monde","url":"https://rss.nytimes.com/services/xml/rss/nyt/HomePage.xml"},
  {"source":"Al Jazeera","category":"Moyen-Orient/Monde","url":"https://www.aljazeera.com/xml/rss/all.xml"},
  {"source":"Associated Press","category":"Faits divers","url":"https://feedx.net/rss/ap.xml"},
  {"source":"Fox News","category":"US/Conservateur","url":"http://feeds.foxnews.com/foxnews/latest"},
  {"source":"TechCrunch","category":"Tech/Startups","url":"https://techcrunch.com/feed/"},
  {"source":"Bloomberg","category":"Économie","url":"https://feeds.bloomberg.com/markets/news.rss"},
  {"source":"France 24","category":"France/International","url":"https://www.france24.com/fr/rss"},
  {"source":"DW","category":"Europe/Monde","url":"https://rss.dw.com/xml/rss_en_top.xml"}
]</code></pre>



<p>placer le php en cron job pour une execution toutes les x heures .</p>



<p>et voici un bout de code pour voir les data </p>



<pre class="wp-block-code"><code>
&lt;?php
// ======================================
// news.php — Frontend d'affichage des flux RSS
// Compatible PHP 5.6
// ======================================

// CONFIG BASE DE DONNÉES
$host = "";
$user = "";
$pass = "";
$dbname = "";

// Connexion MySQL
$mysqli = new mysqli($host, $user, $pass, $dbname);
if ($mysqli->connect_error) die("Erreur MySQL: " . $mysqli->connect_error);

// Filtres (source / catégorie / recherche)
$source = isset($_GET&#91;'source']) ? trim($_GET&#91;'source']) : '';
$category = isset($_GET&#91;'category']) ? trim($_GET&#91;'category']) : '';
$search = isset($_GET&#91;'search']) ? trim($_GET&#91;'search']) : '';

// Construction de la requête SQL
$sql = "SELECT * FROM feednews WHERE 1";
$params = array();
$types = '';

if ($source != '') {
    $sql .= " AND source = ?";
    $params&#91;] = $source;
    $types .= 's';
}
if ($category != '') {
    $sql .= " AND category = ?";
    $params&#91;] = $category;
    $types .= 's';
}
if ($search != '') {
    $sql .= " AND (title LIKE ? OR description LIKE ?)";
    $params&#91;] = "%$search%";
    $params&#91;] = "%$search%";
    $types .= 'ss';
}

$sql .= " ORDER BY pubDate DESC LIMIT 100";

$stmt = $mysqli->prepare($sql);
if (count($params) > 0) {
    $stmt->bind_param($types, ...$params);
}
$stmt->execute();
$result = $stmt->get_result();

// Récupération des filtres pour le menu déroulant
$sourcesRes = $mysqli->query("SELECT DISTINCT source FROM feednews ORDER BY source ASC");
$categoriesRes = $mysqli->query("SELECT DISTINCT category FROM feednews ORDER BY category ASC");
?>
&lt;!DOCTYPE html>
&lt;html lang="fr">
&lt;head>
&lt;meta charset="UTF-8">
&lt;title>&#x1f4f0; Actualités globales&lt;/title>
&lt;style>
body {
    font-family: Arial, sans-serif;
    background: #f7f7f7;
    margin: 0; padding: 0;
}
header {
    background: #333;
    color: white;
    padding: 15px;
    text-align: center;
}
.container {
    width: 90%;
    max-width: 1000px;
    margin: 20px auto;
    background: white;
    border-radius: 8px;
    padding: 15px 20px;
    box-shadow: 0 0 8px rgba(0,0,0,0.2);
}
form {
    margin-bottom: 15px;
    display: flex;
    flex-wrap: wrap;
    gap: 10px;
    align-items: center;
}
select, input&#91;type=text] {
    padding: 8px;
    border: 1px solid #ccc;
    border-radius: 5px;
}
button {
    padding: 8px 12px;
    background: #007BFF;
    color: white;
    border: none;
    border-radius: 5px;
    cursor: pointer;
}
button:hover {
    background: #0056b3;
}
.article {
    border-bottom: 1px solid #ddd;
    padding: 10px 0;
}
.article h3 {
    margin: 0;
    font-size: 18px;
}
.article p {
    margin: 5px 0;
    color: #555;
}
.article small {
    color: #888;
}
footer {
    text-align: center;
    padding: 10px;
    color: #888;
    font-size: 13px;
}
&lt;/style>
&lt;/head>
&lt;body>
&lt;header>
    &lt;h1>&#x1f4f0; Agrégateur RSS Global&lt;/h1>
&lt;/header>

&lt;div class="container">
    &lt;form method="get" action="">
        &lt;select name="source">
            &lt;option value="">Toutes les sources&lt;/option>
            &lt;?php while ($s = $sourcesRes->fetch_assoc()): ?>
                &lt;option value="&lt;?= htmlspecialchars($s&#91;'source']) ?>" &lt;?= ($s&#91;'source']==$source?'selected':'') ?>>
                    &lt;?= htmlspecialchars($s&#91;'source']) ?>
                &lt;/option>
            &lt;?php endwhile; ?>
        &lt;/select>

        &lt;select name="category">
            &lt;option value="">Toutes les catégories&lt;/option>
            &lt;?php while ($c = $categoriesRes->fetch_assoc()): ?>
                &lt;option value="&lt;?= htmlspecialchars($c&#91;'category']) ?>" &lt;?= ($c&#91;'category']==$category?'selected':'') ?>>
                    &lt;?= htmlspecialchars($c&#91;'category']) ?>
                &lt;/option>
            &lt;?php endwhile; ?>
        &lt;/select>

        &lt;input type="text" name="search" placeholder="Rechercher..." value="&lt;?= htmlspecialchars($search) ?>">
        &lt;button type="submit">Filtrer&lt;/button>
        &lt;a href="news.php" style="margin-left:10px;color:#007BFF;text-decoration:none;">Réinitialiser&lt;/a>
    &lt;/form>

    &lt;?php if ($result->num_rows == 0): ?>
        &lt;p>Aucune actualité trouvée.&lt;/p>
    &lt;?php else: ?>
        &lt;?php while ($row = $result->fetch_assoc()): ?>
            &lt;div class="article">
                &lt;h3>&lt;a href="&lt;?= htmlspecialchars($row&#91;'link']) ?>" target="_blank">&lt;?= htmlspecialchars($row&#91;'title']) ?>&lt;/a>&lt;/h3>
                &lt;p>&lt;?= htmlspecialchars(mb_strimwidth($row&#91;'description'], 0, 250, '...')) ?>&lt;/p>
                &lt;small>
                    &#x1f5de; &lt;?= htmlspecialchars($row&#91;'source']) ?> —
                    &#x1f4c2; &lt;?= htmlspecialchars($row&#91;'category']) ?> —
                    &#x1f552; &lt;?= htmlspecialchars($row&#91;'pubDate']) ?>
                &lt;/small>
            &lt;/div>
        &lt;?php endwhile; ?>
    &lt;?php endif; ?>
&lt;/div>

&lt;footer>
    © &lt;?= date('Y') ?> Agrégateur RSS — Actualisation via &lt;code>fetch_feeds.php&lt;/code>
&lt;/footer>
&lt;/body>
&lt;/html>
&lt;?php
$stmt->close();
$mysqli->close();
?>
</code></pre>



<div class="wp-block-buttons is-layout-flex wp-block-buttons-is-layout-flex">
<div class="wp-block-button"><a class="wp-block-button__link wp-element-button" href="http://astrabene.com/r2d2/bojnorc/rssfeed/news.php">voir les feeds</a></div>
</div>
<p>Lisez plus sur <a href="https://astrabene.com/2025/10/26/tuto-php-rss-reader/"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://astrabene.com/2025/10/26/tuto-php-rss-reader/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">301</post-id>	</item>
		<item>
		<title>idee:VM conf</title>
		<link>https://astrabene.com/2025/10/15/ideevm-conf/</link>
					<comments>https://astrabene.com/2025/10/15/ideevm-conf/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Wed, 15 Oct 2025 10:05:07 +0000</pubDate>
				<category><![CDATA[Tutos Geek]]></category>
		<guid isPermaLink="false">https://astrabene.com/?p=200</guid>

					<description><![CDATA[Vous avez dit :j’ai un laptop , hp victius , avec deux carte graphique , une amd une nvidia , j’ai déjà un Windows et deux Linux dessus , il me&#8230;<p>Lisez plus sur <a href="https://astrabene.com/2025/10/15/ideevm-conf/"></a></p>]]></description>
										<content:encoded><![CDATA[
<h5 class="wp-block-heading">Vous avez dit :<br>j’ai un laptop , hp victius , avec deux carte graphique , une amd une nvidia , j’ai déjà un Windows et deux Linux dessus , il me reste de la place pour un quatrième os Linux sûrement , je souhaite un systèmes stable pour faire une sorte hyperviseur de machine virtuel, pour lancer des machine test . dans l &lsquo;idéal le systèmes hôte utilise la carte graphique AMD et les vm, la carte nvidia via pci pass throut , que me conseil tu ?</h5>



<h6 class="wp-block-heading">ChatGPT a dit&nbsp;:</h6>



<p>Tu veux donc transformer ton HP Victus avec GPU AMD <strong>+</strong> NVIDIA en une <strong>station de virtualisation avec passthrough GPU (PCI passthrough)</strong> pour que l’hôte utilise l’<strong>AMD</strong> et les <strong>VM utilisent la NVIDIA</strong>. C’est tout à fait faisable, mais demande un OS <strong>stable</strong>, <strong>flexible</strong>, avec un bon support de la virtualisation (KVM/QEMU/libvirt), et une configuration <strong>pas trop pénible à maintenir</strong>.</p>



<p>Voici ce que je te recommande pour ton <strong>quatrième OS</strong> :</p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Distribution recommandée :</strong></h3>



<h4 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> <strong>Debian 12 (Bookworm)</strong> </h4>



<ul class="wp-block-list">
<li><strong>Stable</strong>, supporte très bien KVM/QEMU, Libvirt.</li>



<li>Large communauté.</li>



<li>Documentation abondante.</li>



<li>Peu de changements non contrôlés (contrairement à Arch ou Fedora).</li>



<li>Idéal pour une base hyperviseur solide.</li>
</ul>



<h4 class="wp-block-heading">Alternative possible :</h4>



<ul class="wp-block-list">
<li><strong>Proxmox VE 8.x</strong>
<ul class="wp-block-list">
<li>C’est basé sur Debian, mais orienté 100% virtualisation (WebUI incluse).</li>



<li>Mais attention : pas fait pour un usage desktop/hybride. Si tu veux aussi utiliser l’hôte pour autre chose, <strong>reste sur Debian</strong>.</li>
</ul>
</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f3af.png" alt="🎯" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Objectif :</h3>



<ul class="wp-block-list">
<li>Utiliser <strong>AMD GPU</strong> pour l’hôte (Debian).</li>



<li><strong>Passer la NVIDIA</strong> (via PCI passthrough) à une ou plusieurs VM.</li>



<li>Lancer tes VMs avec <strong>virt-manager</strong>, <strong>QEMU</strong>, ou en ligne de commande.</li>



<li>Accès complet au GPU NVIDIA dans la VM, pour CUDA/DirectX/OpenGL, etc.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/2705.png" alt="✅" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Pré-requis matériel :</h3>



<ul class="wp-block-list">
<li>Un CPU avec <strong>IOMMU/VT-d</strong> (activé dans le BIOS).</li>



<li>Ton laptop doit permettre un <strong>groupe IOMMU propre</strong> pour la NVIDIA (vérifiable avec <code>lspci</code> et <code>dmesg</code>).</li>



<li>La NVIDIA doit être <strong>désactivable dans l&rsquo;hôte</strong> (pas utilisée par X11/Wayland/DRM) pour être passée à la VM.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f527.png" alt="🔧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Étapes (en résumé) :</h3>



<ol class="wp-block-list">
<li><strong>Installer Debian 12</strong> sur une nouvelle partition.- (Jai choisir debian 13 faut vivre avec sont temp )</li>



<li>Activer <strong>IOMMU</strong> dans le kernel (<code>intel_iommu=on</code> ou <code>amd_iommu=on</code> dans GRUB).</li>
</ol>



<ul class="wp-block-list">
<li>ca c&rsquo;est une petite galere .</li>
</ul>



<p>mais avant y&rsquo;a des truc a installer :</p>



<p>deja si cest une install propre le driver en place cest nouveau . cest le open source fournie par x.org , si le system a les driver propriaire c&rsquo;est nvidia .</p>



<p>pour commancer faut install quelle packet qui vont permertre d&rsquo;active le module vfio , au boot du kernel + les packet pour gere les vm </p>



<p>sudo apt update<br>sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager</p>



<p></p>



<ol class="wp-block-list">
<li>Identifier la carte NVIDIA (<code>lspci | grep -i nvidia</code>).</li>
</ol>



<p>oui mais pas que : lspci -nn</p>



<p>01:00.0 VGA compatible controller [0300]: NVIDIA Corporation AD107M [GeForce RTX 4050 Max-Q / Mobile] [10de:28a1] (r<br>ev a1)<br>01:00.1 Audio device [0403]: NVIDIA Corporation Device [10de:22be] (rev a1)<br></p>



<p>reperrer le numero 10de:28a1 et 10de:22be</p>



<p></p>



<h4 class="wp-block-heading">. Charger les modules noyau vfio-pci</h4>



<p>Ajoutez les modules <code>vfio</code>, <code>vfio_pci</code>, <code>vfio_iommu_type1</code> au noyau :</p>



<pre class="wp-block-preformatted"></pre>



<p><code>echo "vfio" | sudo tee -a /etc/modules echo "vfio_pci" | sudo tee -a /etc/modules echo "vfio_iommu_type1" | sudo tee -a /etc/modules</code></p>



<h4 class="wp-block-heading">c. Isoler le périphérique PCI (il ya deux pci la video et l&rsquo;audio )</h4>



<p>Éditez le fichier <code>/etc/default/grub</code> et ajoutez les options suivantes à la ligne <code>GRUB_CMDLINE_LINUX</code> :</p>



<p>GRUB_CMDLINE_LINUX= »… iommu=pt intel_iommu=on amd_iommu=on video=efifb:off vfio-pci.ids=10de:28a1,10de:22be »</p>



<p>Mettez à jour GRUB :</p>



<p><code>sudo update-grub</code></p>



<p></p>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">1. <strong>Vérifier la compatibilité matérielle</strong></h3>



<p>Assurez-vous que votre matériel (carte mère, CPU, périphériques PCI) supporte la virtualisation IOMMU (VT-d pour Intel, AMD-Vi pour AMD). Activez ces options dans le BIOS/UEFI :</p>



<ul class="wp-block-list">
<li><strong>Intel VT-d</strong> ou <strong>AMD-Vi</strong> (selon votre processeur).</li>



<li><strong>IOMMU</strong> (parfois appelé « Virtualization Technology for Directed I/O »).</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">2. <strong>Installer les paquets nécessaires</strong></h3>



<p>Installez les outils pour la virtualisation et la gestion des modules noyau :</p>



<pre class="wp-block-preformatted"></pre>



<pre class="wp-block-code"><code>sudo apt update
sudo apt install qemu-kvm libvirt-daemon-system libvirt-clients bridge-utils virt-manager</code></pre>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading">3. <strong>Configurer le noyau pour vfio-pci</strong></h3>



<h4 class="wp-block-heading">a. Identifier les périphériques PCI à isoler</h4>



<p>Utilisez la commande suivante pour lister vos périphériques PCI :</p>



<pre class="wp-block-preformatted"></pre>



<pre class="wp-block-code"><code>lspci -nn</code></pre>



<p>Repérez l&rsquo;ID du périphérique que vous souhaitez isoler (par exemple, une carte graphique NVIDIA : <code>10de:13c2</code>).</p>



<h4 class="wp-block-heading">b. Charger les modules noyau vfio-pci</h4>



<p>Ajoutez les modules <code>vfio</code>, <code>vfio_pci</code>, <code>vfio_iommu_type1</code> au noyau :</p>



<pre class="wp-block-preformatted"></pre>



<pre class="wp-block-code"><code>echo "vfio" | sudo tee -a /etc/modules
echo "vfio_pci" | sudo tee -a /etc/modules
echo "vfio_iommu_type1" | sudo tee -a /etc/modules</code></pre>



<h4 class="wp-block-heading">c. Isoler le périphérique PCI</h4>



<p>Éditez le fichier <code>/etc/default/grub</code> et ajoutez les options suivantes à la ligne <code>GRUB_CMDLINE_LINUX</code> :</p>



<pre class="wp-block-preformatted"></pre>



<pre class="wp-block-code"><code>GRUB_CMDLINE_LINUX="... iommu=pt intel_iommu=on amd_iommu=on video=efifb:off vfio-pci.ids=10de:13c2,10de:0fbb"</code></pre>



<p>(Remplacez <code>10de:13c2,10de:0fbb</code> par les IDs de vos périphériques.)</p>



<p>Mettez à jour GRUB :</p>



<ul class="wp-block-list">
<li>petite galere de noob  , sur debian le 1er user  nest pas dans le group sudo user comme sur ubuntu  , par fleme on repase en su (root) , et on comprend pas pourquoi la commande update-grub , nest pas la &#8230; car meme en root il faut la passe en sudo &#8230; a savoir . tes admin et tu sudo normal . dans quelle monde on vis !.</li>
</ul>



<pre class="wp-block-code"><code>sudo update-grub  ( oui meme en root )</code></pre>



<h4 class="wp-block-heading">d. Blacklister les pilotes natifs</h4>



<p>Créez un fichier pour blacklister les pilotes natifs (par exemple, <code>nouveau</code> pour NVIDIA) :</p>



<pre class="wp-block-preformatted"></pre>



<pre class="wp-block-code"><code>echo "blacklist nouveau" | sudo tee /etc/modprobe.d/blacklist-nvidia-nouveau.conf
echo "blacklist nvidia" | sudo tee -a /etc/modprobe.d/blacklist-nvidia-nouveau.conf
echo "options nouveau modeset=0" | sudo tee -a /etc/modprobe.d/blacklist-nvidia-nouveau.conf</code></pre>



<p>Mettez à jour l&rsquo;initramfs :</p>



<p><code>sudo update-initramfs -u</code></p>



<h3 class="wp-block-heading">4. <strong>Redémarrer et vérifier</strong></h3>



<pre class="wp-block-code"><code>sudo reboot ( oui meme reboot sur debian est en sudo pour les root boy ) </code></pre>



<p></p>



<p>et la on peux reprendre ta procedure chatgpt :</p>



<p>Vérifiez que le périphérique est bien lié à <code>vfio-pci</code> :</p>



<p><code>lspci -nnk -d <code>10de:13c2</code></code></p>



<p></p>



<ol class="wp-block-list">
<li>Isoler la carte avec <code>vfio-pci</code> :
<ul class="wp-block-list">
<li>Ajouter les identifiants PCI à la liste des modules (<code>/etc/modprobe.d/vfio.conf</code>).</li>
</ul>
</li>



<li>S’assurer qu’elle n’est <strong>pas prise par nouveau/nvidia</strong> à l’hôte.</li>



<li>Configurer la VM avec libvirt/QEMU avec <strong>PCI passthrough</strong> de la carte NVIDIA.</li>



<li>Tester avec une VM Windows ou Linux : elle devrait voir la NVIDIA comme si c’était une carte dédiée.</li>



<li></li>
</ol>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f9e0.png" alt="🧠" class="wp-smiley" style="height: 1em; max-height: 1em;" /> Conseils :</h3>



<ul class="wp-block-list">
<li>Ne connecte pas ton écran sur la NVIDIA tant qu’elle est pas utilisée par la VM.</li>



<li>Évite Wayland sur l’hôte (préférer X11, plus stable pour le passthrough GPU).</li>



<li>Tu peux aussi <strong>blacklister le module NVIDIA</strong> à l’hôte pour qu’il ne s’en serve pas.</li>



<li>Ajoute un petit SSD dédié aux VM si tu veux de bonnes perfs.</li>
</ul>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<h3 class="wp-block-heading"><img src="https://s.w.org/images/core/emoji/16.0.1/72x72/1f427.png" alt="🐧" class="wp-smiley" style="height: 1em; max-height: 1em;" /> En résumé :</h3>



<figure class="wp-block-table"><table class="has-fixed-layout"><thead><tr><th>Critère</th><th>Recommandation</th></tr></thead><tbody><tr><td>OS</td><td>Debian 12</td></tr><tr><td>Hyperviseur</td><td>KVM/QEMU + Libvirt</td></tr><tr><td>Gestion des VMs</td><td>virt-manager ou ligne de commande</td></tr><tr><td>GPU hôte</td><td>AMD</td></tr><tr><td>GPU VM</td><td>NVIDIA (via passthrough PCIe)</td></tr><tr><td>Alternative</td><td>Proxmox VE (si usage 100% VM)</td></tr></tbody></table></figure>



<hr class="wp-block-separator has-alpha-channel-opacity"/>



<p></p>



<pre class="wp-block-preformatted">config d'une vm test 1. avec virt manageur <br>screen shoot ajoute du hardware .<br>section pci .et autre usb .<br>lancement d'un live linux mint cinamon car cest bien fait pour l gestion des drivers .  enfin ca dectect les cartes graphique .<br>et résultat ca marche et du premier coup il vois bien la nvidia <br><br>test2 installer proxmox dans une vm (inspection mode on )<br>bah ca marche du moin install et gui webserveur )<br><br>problem de place : trouver commemt configurer les stockage la / de lhote et petite , et j'ai un problem de permision si je cree un volume sur ma partion data ( partion de 512 Go en exfat , designe pour etre accesible a tout mes system , pas de droit cryptage secure boot et j'en passe ... , il me laisse cree le volume dedans mais jais une erreur de permision au monnent de demarrer la vm .<br><br><br><br></pre>



<pre class="wp-block-preformatted"></pre>



<p></p>
<p>Lisez plus sur <a href="https://astrabene.com/2025/10/15/ideevm-conf/"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://astrabene.com/2025/10/15/ideevm-conf/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">200</post-id>	</item>
		<item>
		<title>Logiciels : ollama</title>
		<link>https://astrabene.com/2025/10/14/logiciels-ollama/</link>
					<comments>https://astrabene.com/2025/10/14/logiciels-ollama/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Tue, 14 Oct 2025 10:48:21 +0000</pubDate>
				<category><![CDATA[Tutos Geek]]></category>
		<guid isPermaLink="false">https://astrabene.com/2025/10/14/logiciels-ollama/</guid>

					<description><![CDATA[Tuto installer ia local. ( Ajouter tag ia) Ajoute un model Ajouté une interface gui<p>Lisez plus sur <a href="https://astrabene.com/2025/10/14/logiciels-ollama/"></a></p>]]></description>
										<content:encoded><![CDATA[
<p>Tuto installer ia local. ( Ajouter tag ia) </p>



<p>Ajoute un model </p>



<p>Ajouté une interface gui</p>
<p>Lisez plus sur <a href="https://astrabene.com/2025/10/14/logiciels-ollama/"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://astrabene.com/2025/10/14/logiciels-ollama/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">197</post-id>	</item>
		<item>
		<title>Manuels: Mannette BT Qilive</title>
		<link>https://astrabene.com/2025/10/13/manuels-mannette-bt-qilive/</link>
					<comments>https://astrabene.com/2025/10/13/manuels-mannette-bt-qilive/#respond</comments>
		
		<dc:creator><![CDATA[admin]]></dc:creator>
		<pubDate>Mon, 13 Oct 2025 12:50:10 +0000</pubDate>
				<category><![CDATA[Fichiers]]></category>
		<category><![CDATA[Tutos Geek]]></category>
		<guid isPermaLink="false">https://astrabene.com/?p=162</guid>

					<description><![CDATA[<p>Lisez plus sur <a href="https://astrabene.com/2025/10/13/manuels-mannette-bt-qilive/"></a></p>]]></description>
										<content:encoded><![CDATA[
<div data-wp-interactive="core/file" class="wp-block-file"><object data-wp-bind--hidden="!state.hasPdfPreview" hidden class="wp-block-file__embed" data="https://astrabene.com/wp-content/uploads/2025/10/manette.pdf" type="application/pdf" style="width:100%;height:600px" aria-label="Contenu embarqué manette."></object><a id="wp-block-file--media-2acb7eaa-17ff-49aa-b488-d8a2264fb3a0" href="https://astrabene.com/wp-content/uploads/2025/10/manette.pdf">manette</a><a href="https://astrabene.com/wp-content/uploads/2025/10/manette.pdf" class="wp-block-file__button wp-element-button" download aria-describedby="wp-block-file--media-2acb7eaa-17ff-49aa-b488-d8a2264fb3a0">Télécharger</a></div>
<p>Lisez plus sur <a href="https://astrabene.com/2025/10/13/manuels-mannette-bt-qilive/"></a></p>]]></content:encoded>
					
					<wfw:commentRss>https://astrabene.com/2025/10/13/manuels-mannette-bt-qilive/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">162</post-id>	</item>
	</channel>
</rss>
